• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:理解できず困ってます。)

Pythonリストの要素を入力して表示する方法

このQ&Aのポイント
  • Pythonでリストの要素を入力し、表示する方法について困っています。
  • 質問文章のコードを試してみましたが、うまく動作しませんでした。
  • コメントで間違っているところを指摘していただき、正しい書き方を教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Proof4
  • ベストアンサー率78% (151/192)
回答No.2

No.1の補足コメントに対して回答します。 appendは添字ではありません。appendはリストに要素を追加する、リストデータ型のメソッドです。 mylist.append(None)は、mylistの末尾に新たにNoneという要素を追加します。 つまり、 mylist = ['a', 'b', 'c'] というリストがあった場合、mylist.append('d')をすると mylist = ['a', 'b', 'c', 'd'] となります。

参考URL:
https://docs.python.org/ja/3/tutorial/datastructures.html#data-structures

その他の回答 (1)

  • Proof4
  • ベストアンサー率78% (151/192)
回答No.1

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) と等価です。

the-man
質問者

補足

appendは、添え字という認識をしていますが、 myliset.append(None)とは、 mylist[添え字]の添え字が無いという理解であってますでしょうか? であれば、そもそも添え字を書く必要がないですよね。。 間違ったこと言ってますでしょうか。。

関連するQ&A