簡體   English   中英

從 python 中的 dict 列表中查找特定值

[英]find particular value from list of dict in python

我有一個這樣的字典列表:

s = [{'a':1,'b':2},{'a':3},{'a':2},{'a':1}]

刪除重復的值對,我想要一個字典列表,例如:

s = [{'a':1},{'a':3},{'a':2}]

使用帶有過濾器a列表推導:

s = [{k: v for k, v in x.items() if k =='a'} for x in s]
print (s)
[{'a': 1}, {'a': 3}, {'a': 2}]

僅當包含'a'時,您才能使用列表推導添加新的字典條目:

[{'a':d['a']} for d in s if 'a' in d]
# [{'a': 1}, {'a': 3}, {'a': 2}]

你可以試試這個。

s = [{'a':1,'b':2},{'a':3},{'a':2}]
s=[{'a':d['a']} for d in s]
# [{'a': 1}, {'a': 3}, {'a': 2}]

如果你想要一個只有a鍵的 singleton 字典列表,你可以這樣做:

>>> [{'a': d.get('a')} for d in s]
[{'a': 1}, {'a': 3}, {'a': 2}]

但這似乎更適合元組列表:

>>> [('a', d.get('a')) for d in s]
[('a', 1), ('a', 3), ('a', 2)]

dict.get的文檔中:

如果鍵在字典中,則返回鍵的值,否則返回默認值。 如果未給出默認值,則默認為None ,因此此方法永遠不會引發Key Error

暫無
暫無

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

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