python - 在遍历字典时修改字典

标签 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"]) 在同一次迭代中。

最佳答案

您可以创建一个 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")

关于python - 在遍历字典时修改字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43371593/

相关文章:

python - 如何在不同时包含关键字的情况下获得 Python re 模块的完全匹配?

android - 如何计算android中的步行距离?

c++ - 将迭代函数转换为递归函数

python - 对待 try 和 except 相同

python - 如何修剪列表并生成 numpy 二维数组?

python - 针对不同数据库后端的 peewee 数据库的运行时初始化

python - 遍历字典或其键并更改值是不好的做法吗?

ios - 即使在展开它之后也可以选择具有值(value)

iteration - jq:迭代字符串中的正则表达式匹配

python - 过滤列表中的前两个匹配元素