[英]How do I list occurrences of certian values found in a dictionary in a list in python?
dave = [{'date':'12/10/12','time':'09:12','created_by':'adam','text':'this'},
{'date':'28/09/11','time':'15:58','created_by':'admin','text':'that'},
{'date':'03/01/10','time':'12:34','created_by':'admin','text':'this and that'}]
如何獲取在created_by
找到的值的列表。 (例如['adam','admin']
)
列表理解將很好地工作:
[ x['created_by'] for x in dave if 'created_by' in x ]
如果您絕對確定dave
包含的每個字典中的鍵都是'created_by'
則可以忽略if 'created_by' in x
部分中的KeyError
如果在這種情況下缺少該鍵,則會引發KeyError
。
當然,如果您想要唯一的值,則需要確定順序是否重要。 如果順序不重要,則可以選擇set
:
set(x['created_by'] for x in dave if 'created_by' in x)
如果順序很重要,請參考此經典問題
您可以使用set
factory僅返回唯一值,然后可以使用set
list
factory來獲取list
:-
>>> set(x['created_by'] for x in dave)
set(['admin', 'adam'])
>>> list(set(x['created_by'] for x in dave))
['admin', 'adam']
將其放在集合中,然后返回列表...
list(set(d['created_by'] for d in dave))
列表理解的一個進步是對可能沒有'created_by'的項目使用if條件。 當處理混亂的數據時,通常需要這樣做。
list(set(x['created_by'] for x in dave if 'created_by' in x))
>>> ['admin', 'adam']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.