2017-04-12 77 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")