Python 如何为字典列表中的特定键获取唯一的值集?

Python 如何为字典列表中的特定键获取唯一的值集?,python,python-3.x,dictionary,set,unique-values,Python,Python 3.x,Dictionary,Set,Unique Values,我正在使用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”

我正在使用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}]
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()
并检查
键的位置
a

另一种简化方法是:

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

print(s)
你可以简单地做:

lis=[{a:1,b:2},{a:3,b:4}]
#假设变量的关键点指向您想要的
键='a'
a_值=设置(lis中字典的字典[键])

我希望我已经明白你在找什么。谢谢。

@alani,谢谢你发现我的错误,用dart编码一段时间让我的语法混乱。