Python|在字典列表中分离键的值
在使用字典时,我们可能会遇到需要将所有相似键的值隔离在一起的问题。在使用数据库时,这种问题可能发生在 Web 开发领域。让我们讨论一些可以解决这个问题的方法。
方法#1:使用生成器表达式
生成器表达式可用于执行此特定任务。在这种情况下,我们一次取一个键并检查所有字典中的匹配键。缺点是我们需要提前知道密钥。
# Python3 code to demonstrate working of
# Segregating key's value in list of dictionaries
# Using generator expression
# Initialize list
test_list = [{'gfg' : 1, 'best' : 2}, {'gfg' : 4, 'best': 5}]
# printing original list
print("The original list : " + str(test_list))
# Using generator expression
# Segregating key's value in list of dictionaries
res = [tuple(sub["gfg"] for sub in test_list),
tuple(sub["best"] for sub in test_list)]
# printing result
print("Segregated values of keys are : " + str(res))
输出 :
The original list : [{‘best’: 2, ‘gfg’: 1}, {‘best’: 5, ‘gfg’: 4}]
Segregated values of keys are : [(1, 4), (2, 5)]
方法 #2:使用zip() + map() + values()
上述功能的组合也可以在一行中完成类似的任务。在此, values()
用于提取值, map()
用于将各个键相互链接,最后zip()
将它们对应的值连接到单个元组。
# Python3 code to demonstrate working of
# Segregating key's value in list of dictionaries
# Using zip() + map() + values()
# Initialize list
test_list = [{'gfg' : 1, 'best' : 2}, {'gfg' : 4, 'best': 5}]
# printing original list
print("The original list : " + str(test_list))
# Using zip() + map() + values()
# Segregating key's value in list of dictionaries
res = list(zip(*map(dict.values, test_list)))
# printing result
print("Segregated values of keys are : " + str(res))
输出 :
The original list : [{‘best’: 2, ‘gfg’: 1}, {‘best’: 5, ‘gfg’: 4}]
Segregated values of keys are : [(1, 4), (2, 5)]