我想分配(或替换)两个嵌套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