ホームページ >バックエンド開発 >Python チュートリアル >空の Python リストに値を代入すると IndexError が発生するのはなぜですか?

空の Python リストに値を代入すると IndexError が発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-26 22:56:11626ブラウズ

Why Do I Get an IndexError When Assigning Values to an Empty Python List?

リスト操作での代入エラー: インデックスが範囲外の難題

各要素に値を個別に代入してリストを作成しようとすると、 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。