Pythonの入力についてa b c dという入力があったとしてリストの形で受け取りたい場合list = list(map(str,input().split()))list = input().split()この両者の違いは何ですか?不正解ではなかったのですが自分は下の回答を提出したのですが模範回答を見ると上になってました

1件の回答

回答を書く

1010155

2026-04-09 19:25

+ フォロー

どちらも結果は同じで「文字列のリスト」が得られますが、前者は処理が冗長で、しかも組み込み関数名を変数名に使っているという違いがあります。

上のコード
list = list(map(str,input().split()))
では
・input().split() で「文字列のリスト」を作る
・map(str, …) で各要素を str に変換する(もともと文字列なので意味がない)
・list(…) で map オブジェクトをリストにする
という三段階を踏んでいて、実質的に「無駄な処理」をしている形です。

一方、下のコード
list = input().split()
は input().split() の戻り値が最初から「文字列のリスト」なので、そのまま代入しており、シンプルで十分です。

また、どちらのコードも変数名に list を使っているため、組み込みの list 関数を上書きしてしまい、あまり良い書き方ではありません。実務では arr や s_list など別の名前を使うことをおすすめします。

模範解答で上が使われていたのは、おそらく「map と list を使って型変換しながらリストにする」という一般的な書き方(ふつうは int に変換する形)をそのまま流用しているためと考えられます。今回のケースでは、下の書き方でも正しく動作しています。

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有