我看到我可以在遍历列表时附加到列表
lst = [1]
for i in lst:
lst.append(i+1)
print(i)
我可以使用这种行为吗?还是气馁?我注意到 set
lst = set([1])
for i in lst:
lst.add(i+1)
print(i)
Error: size changed during iteration.
最佳答案
允许在迭代列表时附加到列表,因为列表是有序的,因此在迭代期间附加的行为是可预测的。这对于在队列中的所有其他任务都已完成时重试失败的任务非常有用,例如:
tasks = ['task1', 'task2']
for task in tasks:
if task == 'task1':
tasks.append('task1-retry')
print(task)
这个输出:
task1
task2
task1-retry
但集合是无序的,因此在按顺序迭代集合时向集合中添加一个项目会产生不确定的效果,因此是不允许的。
关于python - 在遍历列表时附加到列表是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52852143/