想知道是否有更惯用的(Pythonic)方式来做到这一点。我有一个由游标对象返回的元组列表,并且我正在尝试将数据重新分组到字典中。我得到的数据格式如下:
[("Département d'informatique", 119, 74, 193),
("Département d'informatique", 193, 67, 260),
("Département de chimie", 355, 44, 399) ... ]
请注意,部门会重复。同一部门的每条线代表不同类型的数据。我需要在包含键(部门名称)的字典中重新组合该数据,该值将是将该部门作为其第一个成员的所有元组的列表。所以像这样:
{ "Département d'informatique": [(119, 74, 193), (193,67,260) ...] }
这是我的代码。它目前正在工作,但我不确定这是否是最有效/Pythonic 的做事方式。
def preparer_donnees(data):
ret = { ligne[0] : [] for ligne in data }
for ligne in data:
for entree in ligne[1:]:
ret[ligne[0]].append(entree)
return ret
谢谢!
最佳答案
我会使用 collections.defaultdict
:
def preparer_donnees(data):
from collections import defaultdict
ret = defaultdict(list)
for v in data:
ret[v[0]].append(v[1:])
return ret
关于Python:转换字典中的元组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24023208/