[英]Group a list of tuples to dictionary in Python
我想将列表变成字典,如下所示:
somelist = [("facultyX", "memberA", "Student"),
("facultyX", "memberB", "Student"),
("facultyX","memberC", "Programmer"),
("facultyY", "memberD", "Student"),
("facultyY", "memberE","PostDoc")]
result = {'facultyX':{'Student':['memberA','memberB'],
'Programmer':['memberC']},
'facultyY':{'Student':['memberD'],
'PostDoc':['memberE']}}
稍微撒一些dict.setdefault()
就不那么困难了:
result = {}
for fac, member, role in yourlist:
fac_data = result.setdefault(fac, {})
fac_data.setdefault(role, []).append(member)
演示:
>>> somelist = [("facultyX", "memberA", "Student"),
... ("facultyX", "memberB", "Student"),
... ("facultyX","memberC", "Programmer"),
... ("facultyY", "memberD", "Student"),
... ("facultyY", "memberE","PostDoc")]
>>> result = {}
>>> for fac, member, role in somelist:
... fac_data = result.setdefault(fac, {})
... fac_data.setdefault(role, []).append(member)
...
>>> from pprint import pprint
>>> pprint(result)
{'facultyX': {'Programmer': ['memberC'], 'Student': ['memberA', 'memberB']},
'facultyY': {'PostDoc': ['memberE'], 'Student': ['memberD']}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.