[英]Python deleting from a dictionary using list comprehensions
我正在努力成為一名優秀的 Pythonista,並在可能的情況下使用列表推導式...
為什么這不起作用?
[del my_dict[r] for r in to_remove]
目標是從我的 dict 對象my_dict
刪除列表to_remove
中的條目:
for r in to_remove:
del my_dict[r]
工作正常,但我正在嘗試使用列表理解來做到這一點
您不應該對副作用使用列表推導式,它不是 Pythonic。
應該使用一個簡單的 for 循環。
因為del X
是一個不打算這樣使用的語句。 它在語法上是不正確的。
只是:
for r in to_remove:
del my_dict[r]
基本上,只需遍歷列表即可:
for r in to_remove:
del my_dict[r]
你可以這樣做,但我會聽 jamylak。 當然,這是返回一個新列表,而不是從my_dict
刪除
my_dict = [x for x in my_dict if x not in to_remove]
你可以:
[my_dict.pop(r) for r in to_remove]
.pop
返回已刪除鍵的值,它會比del
( 見這里)慢一點,而不是最“pythonic”的方式來做到這一點。 所以你可能不應該像其他人所建議的那樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.