给出以下列表(来自sqlite查询):
[('job1', 'location1', 10),
('job1', 'location2', 10),
('job2', 'location1', 5),
('job3', 'location1', 10),
('job3', 'location3', 10)]
我想在我的tpl模板中呈现以下内容:
job1
location1: 10
location2: 10
job2
location1: 5
job3
location1: 10
location3: 10
我可以通过setdefault完成这项工作
d = {}
for job in jobs:
d.setdefault(job[0], {}).update({job[1]: job[2]})
但我想知道这样做的标准或最佳做法是什么?
干杯,
这是我如何使你的代码更Pythonic:
from collections import defaultdict
d = defaultdict(dict)
for (job_id, location, value) in jobs:
d[job_id][location] = value
# if you need an actual dict at the end (and not a defaultdict),
# use d = dict(d)
我改变了什么: