0
名前と数値のテキストファイルを読み込み、名前と数値の2次元配列にするプログラムを作成しようとしています。数字は1です。しかし、2次元配列のインデックスにアクセスするために書いたコードは機能せず、エラー "IndexError:list index of range"をスローします。これは動作していないコードのブロックです:Python多次元配列リストのインデックスが範囲外にある
for i in range(x):
list2[i][1] = int(list2[i][1])
if int(list2[i][1]) == 1:
list2.pop(i)
これはトレースバックです:
File "/Users/cat/PycharmProjects/myCS106/Names.py", line 16, in updateNames
list2[i][1] = int(list2[i][1])
IndexError: list index out of range
これは、リスト2のように見えるかもしれないものの例です。
[["John Doe","1"],["Jane Smith","0"],["Firstname Lastname","1"]]
何間違っているのですが、配列内の項目の2番目の部分(この場合は番号)に正しくアクセスするにはどうすればよいですか?
反復処理中にリストの長さを変更しています。それは通常常に常に問題につながる。あなたはそれをする必要があるいくつかの論理的な理由はありますか? – Luca
list comprehensionは、 'pop ')なしで' 1'の値を削除するきれいな方法かもしれません: 'list_without_ones = [element2 [1]!= 1]の場合、list2の要素の の要素のための 。つまり、不要な値を除外する 'list2'のコピーを作成します –