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