- ベストアンサー
Pythonリストの要素を入力して表示する方法
- Pythonでリストの要素を入力し、表示する方法について困っています。
- 質問文章のコードを試してみましたが、うまく動作しませんでした。
- コメントで間違っているところを指摘していただき、正しい書き方を教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1の補足コメントに対して回答します。 appendは添字ではありません。appendはリストに要素を追加する、リストデータ型のメソッドです。 mylist.append(None)は、mylistの末尾に新たにNoneという要素を追加します。 つまり、 mylist = ['a', 'b', 'c'] というリストがあった場合、mylist.append('d')をすると mylist = ['a', 'b', 'c', 'd'] となります。
その他の回答 (1)
- Proof4
- ベストアンサー率78% (151/192)
3個所修正すべき点があるので挙げます。 1. 配列の定義と代入 mylistは要素数が指定されていないため、mylist[i]での代入は無効です。 あらかじめ要素数を指定して初期化しておくか、appendで追加する必要があります。 2. iのカウントアップ for文で自動でカウントアップされるのでi = i + 1のカウントアップは不要です。 3. 不要なコード breakではforループを脱出してしまいます。if文からの脱出は何もする必要がありません。また、nextはPythonでは不要です。 以上を踏まえたうえでコードを修正すると下記のようになります。 mylist = [None for i in range(5)] for i in range(5): val = input() if val != '': mylist[i] = val print(mylist) ※OKWAVEの仕様上、インデントを全角スペースで表現しています。コピペの際はご注意ください。 mylist = [None for i in range(5)]で配列を初期化していますが、ここではリスト内包表記というものを利用しています。この処理は mylist = [] for i in range(5): mylist.append(None) と等価です。
補足
appendは、添え字という認識をしていますが、 myliset.append(None)とは、 mylist[添え字]の添え字が無いという理解であってますでしょうか? であれば、そもそも添え字を書く必要がないですよね。。 間違ったこと言ってますでしょうか。。