Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 重置for循环_Python 2.7_Dictionary - Fatal编程技术网

Python 2.7 重置for循环

Python 2.7 重置for循环,python-2.7,dictionary,Python 2.7,Dictionary,在阅读字典时有没有办法重置for循环?我试图在读取for循环时将项添加到字典中,这样这些项就不会被遍历 例如: def assignCircuits( jugglerPriority, numberofJugglerPerCircuit, numberofCircuit): circuitAssign = defaultdict(list) for juggler,jugglerChoice in jugglerPriority(): for choice in juggler

在阅读字典时有没有办法重置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
def分配电路(杂耍优先级、杂耍电路数、杂耍电路数):
circuitAssign=defaultdict(列表)
对于杂耍者,请使用杂耍优先权中的杂耍选择()
选择“杂耍之声”:
电路,productVal=选择
如果len(电路分配[circuit])circuitAssign[circuit][0]['value']和len(circuitAssign[circuit])==numberofJugglerPerCircuit:
jugglerRemoved=circuitAssign[circuit].pop(0)
印刷杂耍
打印productVal
打印电路分配[电路][1][“值”]
电路分配[circuit].append(dict(jugglerName=juggler,jugglerParams=jugglerChoice,value=productVal))
从运算符导入itemgetter
circuitAssign[circuit]=已排序(circuitAssign[circuit],key=itemgetter('value'))
jugglerPriority[jugglerRemoved['jugglerName']]。追加(jugglerRemoved['jugglerParams']))
打破
其他:
持续
返回电路分配

因为我同时阅读和修改字典,所以我想重置它

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

以前,我使用了索引,并从头到尾遍历了集合-任何添加的删除操作都不会影响我尚未管理的项。不确定在Python中执行此操作的最佳方式