簡體   English   中英

如果其鍵等於某個值,則從字典列表中刪除字典

[英]Delete dictionary from a list of dictionary if its key equals certain value

我有兩個字典的字典清單。 如果字典的名稱鍵等於某個值,我想從列表中刪除字典。

dict=[
{"name": "Tom", "age": 10},
{"name": "Mark", "age": 5},
{"name": "Pam", "age": 7},
{"name": "Pam", "age": 20}
]

我知道如何搜索字典:

(item for item in dicts if item["name"] == "Pam").next()

這將輸出以Pam作為名稱鍵的詞典。 因此,代替下一步,我需要類似del的東西。 謝謝。

您實際需要的是這樣的東西:

[item for item in mylist if item['name'] != 'Pam']

filter是一個很好的選擇,不要調用您的變量dict

list_of_dicts = filter(lambda x: x['name'] != 'Pam', list_of_dicts)

或者,甚至來自itertools ifilterfalse

>>> import itertools
>>> i = [
... {"name": "Tom", "age": 10},
... {"name": "Mark", "age": 5},
... {"name": "Pam", "age": 7},
... {"name": "Pam", "age": 20}
... ]
>>> list(itertools.ifilterfalse(lambda x: x['name'] == 'Pam', i))
[{'age': 10, 'name': 'Tom'}, {'age': 5, 'name': 'Mark'}]
>>> i = list(itertools.ifilterfalse(lambda x: x['name'] == 'Pam', i))
>>> i
[{'age': 10, 'name': 'Tom'}, {'age': 5, 'name': 'Mark'}]
for i in dic:
  if dic.count(i) > 1:
    del i

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM