在迭代时修改字典

时间:2017-04-12 13:53:50

标签: python dictionary iteration

我希望能够遍历字典,为每个条目调用函数,而此函数可能会向同一个字典添加更多条目。是否有可能有某种迭代方法允许我这样做并让函数迭代在同一个for循环的新添加的条目? 在示例中: 我有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"])

1 个答案:

答案 0 :(得分: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")