[英]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.