Python – 将键分组到值列表
有时,在使用Python字典时,我们可能会遇到需要查找字典中所有键的所有可能值的问题。该实用程序非常普遍,可以出现在许多领域,包括日间编程和学校编程。让我们讨论可以执行此任务的特定方式。
方法 #1:使用循环 + defaultdict()
上述功能的组合可用于执行此任务。在此,我们通过使用列表数据类型初始化 defaultdict 来捕获列表中的所有元素,并继续将所有值附加到关联键。
# Python3 code to demonstrate working of
# Group keys to values list
# Using loop + defaultdict()
from collections import defaultdict
# initializing list
test_list = [{'gfg' : 1, 'is' : 4, 'best' : 7},
{'gfg' : 9, 'is' : 8, 'best' : 3},
{'gfg' : 4, 'is' : 4, 'best' : 7},
{'gfg' : 7, 'is' : 2, 'best' : 8},
{'gfg' : 1, 'is' : 4, 'best' : 7},
{'gfg' : 10, 'is' : 9, 'best' : 2},
{'gfg' : 0, 'is' : 5, 'best' : 6}]
# printing original list
print("The original list is : " + str(test_list))
# Group keys to values list
# Using loop + defaultdict()
res = defaultdict(set)
for sub in test_list:
for key, val in sub.items():
res[key].add(val)
# printing result
print("The grouped key values : " + str(dict(res)))
输出 :
The original list is : [{‘best’: 7, ‘gfg’: 1, ‘is’: 4}, {‘best’: 3, ‘gfg’: 9, ‘is’: 8}, {‘best’: 7, ‘gfg’: 4, ‘is’: 4}, {‘best’: 8, ‘gfg’: 7, ‘is’: 2}, {‘best’: 7, ‘gfg’: 1, ‘is’: 4}, {‘best’: 2, ‘gfg’: 10, ‘is’: 9}, {‘best’: 6, ‘gfg’: 0, ‘is’: 5}]
The grouped key values : {‘best’: {8, 2, 3, 6, 7}, ‘gfg’: {0, 1, 4, 7, 9, 10}, ‘is’: {8, 9, 2, 4, 5}}