给定一个字典列表:
我该如何将它们按照匹配字典值分组,以便输出以下内容:
players= [
{ "name": 'matt', 'school': 'WSU', 'homestate': 'CT', 'position': 'RB' },
{ "name": 'jack', 'school': 'ASU', 'homestate': 'AL', 'position': 'QB' },
{ "name": 'john', 'school': 'WSU', 'homestate': 'MD', 'position': 'LB' },
{ "name": 'kevin', 'school': 'ALU', 'homestate': 'PA', 'position': 'LB' },
{ "name": 'brady', 'school': 'UM', 'homestate': 'CA', 'position': 'QB' },
]
我该如何将它们按照匹配字典值分组,以便输出以下内容:
匹配值1:
姓名:[马特,约翰,凯文],
学校:[WSU,WSU,ALU],
家乡:[CT,MD,PA]
职位:[RB,LB,LB]
匹配值2:
姓名:[杰克,布雷迪],
学校:[ASU,UM],
家乡:[AL,CA]
职位:[QB,QB]
请注意,匹配值是任意的;也就是说,它可以在任何地方找到。也许在school
或position
中,或者两者都有。
我尝试通过以下方式进行分组:
from collections import defaultdict
result_dictionary = {}
for i in players:
for key, value in i.items():
result_dictionary.setdefault(key, []).append(value)
这将产生:
{'name': ['matt', 'jack', 'john', 'kevin', 'brady'],
'school': ['WSU', 'ASU', 'WSU', 'ALU', 'UM'],
'homestate': ['CT', 'AL', 'MD', 'PA', 'CA'],
'position': ['RB', 'QB', 'LB', 'QB', 'QB']}
但我卡在如何进一步操作输出以匹配上述所需输出的问题上,我相信有更好、更简单的方法来处理它。