bac*_*ood 2 python sorting grouping dictionary list
我想将列表转换为dict,如下所示:
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']}}
Run Code Online (Sandbox Code Playgroud)
稍微撒dict.setdefault()
一点就不那么难了:
result = {}
for fac, member, role in yourlist:
fac_data = result.setdefault(fac, {})
fac_data.setdefault(role, []).append(member)
Run Code Online (Sandbox Code Playgroud)
演示:
>>> 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']}}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
480 次 |
最近记录: |