在阅读字典时有没有办法重置for循环?我正在尝试在for循环中向字典中添加项目,同时阅读它,以便不会遍历这些项目。
例如:
def assignCircuits( jugglerPriority, numberofJugglerPerCircuit, numberofCircuit):
circuitAssign = defaultdict(list)
for juggler,jugglerChoice in jugglerPriority():
for choice in jugglerChoice:
circuit, productVal = choice
if len(circuitAssign[circuit]) < numberofJugglerPerCircuit:
circuitAssign[circuit].append(dict(jugglerName = juggler, jugglerParams = jugglerChoice,value=productVal))
from operator import itemgetter
circuitAssign[circuit] = sorted(circuitAssign[circuit], key=itemgetter('value'))
break;
elif productVal > circuitAssign[circuit][0]['value'] and len(circuitAssign[circuit]) == numberofJugglerPerCircuit:
jugglerRemoved = circuitAssign[circuit].pop(0)
print jugglerRemoved
print productVal
print circuitAssign[circuit][-1]['value']
circuitAssign[circuit].append(dict(jugglerName = juggler, jugglerParams = jugglerChoice, value=productVal))
from operator import itemgetter
circuitAssign[circuit] = sorted(circuitAssign[circuit], key=itemgetter('value'))
jugglerPriority[jugglerRemoved['jugglerName']].append(jugglerRemoved['jugglerParams'])
break
else:
continue
return circuitAssign
由于我正在阅读和修改字典,我想重置它。
答案 0 :(得分:0)
更改您正在迭代的集合总是很危险。
之前我使用过一个索引,并从最后到开始遍历集合 - 任何删除的添加都不会影响我尚未管理的项目。不确定在Python中最好的方法。