【问题标题】:modifying a dictionary while iterating over it [duplicate]在迭代字典时修改字典[重复]
【发布时间】:2017-04-12 13:53:50
【问题描述】:

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

【问题讨论】:

  • 欢迎来到 SO!请编辑您的问题并使用顶部的代码标记按钮。

标签: python dictionary iteration


【解决方案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")

【讨论】:

    猜你喜欢
    • 2023-04-06
    • 2013-02-22
    • 2011-10-10
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 2011-10-14
    相关资源
    最近更新 更多