我有以下問題。我有一本字典dict_a。我想通過它,如果滿足某些條件,那么我想從dict_a. 當我嘗試這個時:
for key in dict_a.keys():
if # some condition:
dict_a.pop(key)
我有一個錯誤
RuntimeError: dictionary changed size during iteration.
有沒有比下面這個更pythonic的方式來做到這一點?
dict_b = dict_a.copy()
for key in dict_a.keys():
if # some condition:
dict_b.pop(key)
dict_a = dict_b.copy()
uj5u.com熱心網友回復:
您可以dict_a事先從鍵中列出:
for key in list(dict_a):
if # some condition:
dict_a.pop(key)
uj5u.com熱心網友回復:
試試這個。如果您愿意,可以使用常規函式或 lambda 函式定義自己的邏輯。
def custom_filter_logic(item):
# if some_condition, return False
# define your logic below
k, v = item[0], item[1]
return v < 3
new_dict = {k: v for k, v in filter(custom_filter_logic, dict_a.items())}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/436673.html
下一篇:動態更改變數名稱,評估和填充字典
