我想分配(或替換)兩個嵌套for循環內列表中的項目。下面是代碼(base_list已經被定義,所以代碼可能看起來不完全):Python - 列表分配索引超出範圍時嘗試將值分配給循環內的列表項目
list_init = 'test'
# converting new list to type list
new_list = list(list_init)
flag = [0]
for i in range(len(base_list)):
for j in range(i, len(base_list)):
if base_list[i] == base_list[j]:
print(base_list[j],' is equals to', base_list[i])
# below is the error line
new_list[j] = base_list[j]
flag[j] = 1
else:
print(base_list[j],' is not equals to', base_list[i])
# below is the error line
new_list[j] = base_list[j]
flag[j] = 0
什麼我做的是遍歷同一個列表(base_list)兩次到列表中的每個元素進行元素比較在該元素之後,並且每當找到匹配項時,我將爲每個匹配分配第一個base_list值給new_list。當找不到匹配時,我將當前base_list值分配給新列表。所以我是把第二個循環是:
for j in range(i, len(base_list))
這是爲了確保第二循環從列表項活躍在第一圈開始,並沒有從一開始迭代。
現在的問題是在下面的行:
new_list[j] = base_list[j]
我收到以下錯誤:
new_pl[j] = pl_list[i]
IndexError: list assignment index out of range
的同樣的問題,我旗名單面向:
flag[j] = 1
您可以請建議任何解決方案來分配(或替換)循環內的列表元素值使用指數?
感謝您的回覆,但即使我刪除了錯誤的初始化,並按照您的說法進行操作,但我也遇到了同樣的錯誤。在循環或其他方面有什麼問題嗎?我是一個Python初學者,所以不知道。 :) – Rishabh
現在的錯誤已成爲:「IndexError:列表索引超出範圍」,當我在做:new_list [j] = base_list [i] – Rishabh
更新:即使我試圖打印base_list值,如下所示:print base_list [i]),在if條件之後,它給列表索引超出範圍錯誤。 – Rishabh