rah*_*hul 5 python loops for-loop
我看到我可以在迭代列表时追加到列表中
lst = [1]
for i in lst:
lst.append(i+1)
print(i)
Run Code Online (Sandbox Code Playgroud)
我可以利用这种行为吗?还是灰心?我注意到不能同样说set
lst = set([1])
for i in lst:
lst.add(i+1)
print(i)
Run Code Online (Sandbox Code Playgroud)
错误:大小在迭代过程中更改。
允许在迭代时追加到列表,因为列表是有序的,因此在迭代过程中追加的行为是可预测的。当队列中的所有其他任务完成时,这对于重试失败的任务很有用,例如:
tasks = ['task1', 'task2']
for task in tasks:
if task == 'task1':
tasks.append('task1-retry')
print(task)
Run Code Online (Sandbox Code Playgroud)
输出:
task1
task2
task1-retry
Run Code Online (Sandbox Code Playgroud)
但是集合不是有序的,因此在顺序迭代集合时将项目添加到集合具有不确定的效果,因此是不允许的。