[英]list index out of range,python
我有一個問題,就是我有這樣的1D列表:
List_A = []
我還有另一個列表,如下所示:
List_B = [(1,2,3),(2,3,4),(3,4,5)]
現在我嘗試使用:
for i in range(3):
List_A[i] = List_B[i][2]
這意味着,我想從List_B到List_A取每個最后(第3個)數字,但是它被稱為“索引超出范圍”,那么問題是什么? 非常感謝你的幫助
我知道append方法,但我認為我不能使用它,因為我的代碼在循環中,List_B中的值在每一步都會發生變化,例如:
List_A = []
for i in range(5):
List_B = [(i*1,i*2,i*3),(i*2,i*3,i*4),(i*3,i*4,i*5)]
for j in range(3):
List_A[j] = List_B[j][2]
也就是說,如果我使用append方法,List_A將放大到15個元素大小,但我需要在每個i循環中刷新值。
問題在於List_A
只有一個值。 在這里,您嘗試更改列表中沒有的索引1
和2
的值。 所以你得到了錯誤。
for i in range(3):
List_A.append(List_B[i][2])
這可以在單個list-comp中完成
List_A = [i[2] for i in List_B]
發表編輯 -
在第一個循環之后立即進行初始化
for i in range(5):
List_A = [] # Here
List_B = [(1,2,3),(2,3,4),(3,4,5)]
for j in range(3):
List_A.append(List_B[j][2])
# Do other stuff
這個循環就是問題所在
for i in range(3):
List_A[i] = List_B[i][2]
您只能訪問List_A[0]
, i
的其余值超出范圍。 如果您要填充列表,則應使用append
List_A = []
for i in range(3):
List_A.append(List_B[i][2])
或者更多Pythonic使用列表理解
List_A = [i[2] for i in List_B]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.