2017-04-12 75 views
2

我想能够通过字典,调用每个条目的函数,而此功能可能会添加更多的条目到同一字典。是否有可能有某种迭代方法,这将允许我这样做,并让函数迭代新添加的条目在相同的循环? 例如: 我有dict = {"A": 1, "B": 2, "C": 3} 我想用函数f遍历它。 即使呼叫f(dict["A"])在字典中添加了一个新条目,使其成为: {"A": 1, "B":2, "C": 3, "new key": "new value"},我希望该循环也在相同的迭代中调用f(dict["new key"])修改字典,同时迭代它

+0

欢迎SO!请编辑您的问题并在顶部使用代码标记按钮。 – Jan

回答

1

您可以创建从字典中的密钥的deque,遍历队列,并添加到两个,字典和队列:

import collections 

dic = {"A": 1, "B": 2, "C": 3} 
deq = collections.deque(dic) 

while deq: 
    x = deq.pop() 
    print(x) 
    if x == "B": 
     dic["D"] = 4 
     deq.append("D")