リスト操作での代入エラー: インデックスが範囲外の難題
各要素に値を個別に代入してリストを作成しようとすると、 IndexError が発生する可能性があります。これは、他の言語の配列とは異なり、Python リストには事前に割り当てられたインデックスやメモリ割り当てがないために発生します。
指定されたコード内:
i = [1, 2, 3, 5, 8, 13] j = [] k = 0 for l in i: j[k] = l k += 1
問題は、空のリスト j には最初は要素がありません。最初の反復で j[k] に値を割り当てるには、j に少なくとも 1 つの要素が必要ですが、ここでは当てはまりません。したがって、IndexError.
このエラーが発生せずにリストに要素を追加するには、append() メソッドを使用します。
for l in i: j.append(l)
配列のような直接代入の場合、事前にNone 値を含むリストを作成し、それらを上書きします:
j = [None] * len(i) k = 0 for l in i: j[k] = l k += 1
Python リストは要素が追加されると動的に拡張するため、必要がなくなります。明示的なメモリ割り当ての場合。
以上が空の Python リストに値を代入すると IndexError が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。