簡體   English   中英

如何為字典列表中的特定鍵獲取一組唯一的值?

[英]How do I get a unique set of values for a specific key in a list of dictionaries?

我正在使用 Python 3.8。 如果我想為一系列字典獲取一組唯一的值,我可以執行以下操作

>>> lis = [{"a": 1, "b": 2}, {"a": 3, "b": 4}]
>>> s = set( val for dic in lis for val in dic.values())
>>> s
{1, 2, 3, 4}

但是,如果我只想要字典鍵“a”的唯一值集,我將如何改進上述內容? 在上面,答案是

{1, 3}

我假設數組中的每個字典都具有相同的鍵集。

你可以簡單地做:

lis = [{"a": 1, "b": 2}, {"a": 3, "b": 4}]
# assuming the variable key points to what you want
key = 'a'
a_values = set(dictionary[key] for dictionary in lis)

我希望我已經明白你在找什么。 謝謝。

你可以這樣做:

lis = [{"a": 1, "b": 2}, {"a": 3, "b": 4}]
search_key = 'a'
s = set(val for dic in lis for key, val in dic.items() if key == search_key)

print(s)

#OUTPUT: {1, 3}

使用dic.items()代替dic.values()並檢查其中的keya

另一種簡化事情的方法:

lis = [{"a": 1, "b": 2}, {"a": 3, "b": 4}]
search_key = 'a'
s = set(dic.get(search_key) for dic in lis)

print(s)

暫無
暫無

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

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