【发布时间】:2021-02-18 12:50:14
【问题描述】:
我希望将输入集中的值与作为键的元组中的第一个元素一起分组。第二个元素需要根据公共键组合到一个列表中。输出需要是一个包含元组的列表。
# Input set
values = {(304008, 2020.0), (304008, 2017.0), (250128, 2020.0), (93646, 2020.0), (93646, 2017.0)}
# Current workflow
keys = {i[0] for i in values}
id_dict = dict()
for k in keys:
id_dict[k] = [int(i[1]) for i in values if i[0] == k]
lst2 = list(id_dict.items())
# Expected output
# [(250128, [2020]), (304008, [2017, 2020]), (93646, [2020, 2017])]
我有预期的输出,但是整个过程太慢了。我希望让它更快。我正在查看 groupby 函数,但我似乎无法让它们工作。
【问题讨论】:
标签: python dictionary itertools