次のコードを検討してください:
i = [1, 2, 3, 5, 8, 13]
j = []
k = 0
for l in i:
j[k] = l
k += 1
print j
出力(Win 7 32ビット上のPython 2.6.6)は次のとおりです。
> Traceback (most recent call last):
> j[k] = l IndexError: list assignment index out of range
それは私にはわからない単純なものだと思います。誰かがそれを片付けることができますか?
j
空のリストです[0]
が、まだ存在していない最初の反復で要素に書き込もうとしています。
リストの最後に新しい要素を追加するには、代わりに以下を試してください。
for l in i:
j.append(l)
もちろん、既存のリストをコピーすることだけが目的の場合は、実際にこれを行うことは決してありません。あなたはただやる:
j = list(i)
あるいは、他の言語の配列のようにPythonリストを使用したい場合は、その要素をnull値に設定してリストを事前に作成し(None
以下の例)、後で特定の位置の値を上書きできます。
i = [1, 2, 3, 5, 8, 13]
j = [None] * len(i)
#j == [None, None, None, None, None, None]
k = 0
for l in i:
j[k] = l
k += 1
認識すべきことは、list
オブジェクトでは存在しないインデックスに値を割り当てることができないということです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加