如何为字典列表中的特定键获取一组唯一的值?
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}]
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()
并检查 key
在哪里 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}]
# assuming the variable key points to what you want
key = 'a'
a_values = set(dictionary[key] for dictionary in lis)
希望我已经了解您的需求。谢谢
我正在使用 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()
并检查 key
在哪里 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}]
# assuming the variable key points to what you want
key = 'a'
a_values = set(dictionary[key] for dictionary in lis)
希望我已经了解您的需求。谢谢