Pythonで「タプルインデックスが範囲外です」というエラーはどういう意味ですか?


ベストアンサー

こんばんは

一部の言語は幸いにも安全なオブジェクトを実装していますアクセス、Pythonについてはよくわかりませんが、アクセスするオブジェクトには範囲チェックがあると想定できます。

この非常に単純なステートメントから理解できるのは、Pythonがその基本の一部からほとんどにオブジェクトを作成することです。データ型と必要に応じて暗黙的にアクセサを呼び出す、変換と範囲のチェック、変換など、論理エラーが発生しているので、範囲外のタプルにアクセスした理由を確認してください。コードのインデックスにエラーがあるようです。および/またはタプルサイズ。

これは、他の言語が実行できることに対してより寛容であり、その結果、いわゆるランタイムエラーが発生することを示すメモです。範囲外にアクセスすると、どちらかが実行されます。意図しないデータを読み取り、別のオブジェクトのメモリにも書き込む可能性があるため、データが破損し、最終的にデータが失われるか、tiが実行されます。クラッシュします。

よろしく

Jean-François

回答

Pythonのリストは変更可能であるため、サイズは固定されていません。

サイズが固定されていないため

リストに割り当てられた値に基づいて、Pythonメモリ管理-内部で0、4の成長パターンでリスト(使用可能なインデックス)を作成します、8、16、25、35、46、58、72、88、…realloc()を何度も呼び出す代わりに。

ただし、リストに割り当てられた値は、list(利用可能なインデックス)。

リストの場合、利用可能なインデックス > 割り当てられたインデックス。

空のまたは要素なしにアクセスしようとした場合リストの利用可能なインデックスをポイントすると、「リストインデックスが範囲外エラー」になります。

Pythonを開いて、手を汚してくださいと理解を深めるために、コードの下にあります。

> x = list( 1234)

>> x

[1、 2、 3、 4]

>> length = len(x)

4

>> x [length ]

インデックスエラー:リストインデックスが範囲外です

注: リストインデックスはゼロ(0)から始まります。

ただし、ここではの長さは4です。

上記のリストの割り当ては次のようになります。

x [0] = 1

x [1] = 2

x [2] = 3

x [3] = 4

x [4] =?

であるx [4]にアクセスしようとした場合存在しない、リストインデックスが範囲外になります。

リストが内部でメモリを割り当てる方法をよりよく理解するには、このリンク Pythonリスト実装

ありがとうございます!!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です