重置for循环

时间:2014-10-23 06:19:09

标签: python-2.7 dictionary

在阅读字典时有没有办法重置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

由于我正在阅读和修改字典,我想重置它。

1 个答案:

答案 0 :(得分:0)

更改您正在迭代的集合总是很危险。

之前我使用过一个索引,并从最后到开始遍历集合 - 任何删除的添加都不会影响我尚未管理的项目。不确定在Python中最好的方法。