列表操作中的賦值錯誤:索引超出範圍難題
當嘗試透過單獨為每個元素賦值來建立清單時,您可能會遇到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 至少有一個元素,但這裡的情況並非如此。因此,出現了 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中文網其他相關文章!