簡體   English   中英

列表索引超出范圍,python

[英]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只有一個值。 在這里,您嘗試更改列表中沒有的索引12的值。 所以你得到了錯誤。

append List_A聲明為[]后使用append

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM