gpt4 book ai didi

python 2.7 : Appending to a list value of a dictionary key

转载 作者:太空狗 更新时间:2023-10-30 02:10:38 25 4
gpt4 key购买 nike

我有以下数据:

data = [(1, 2), (1, 3), (1, 4), (2, 1), (2, 2), (2, 3)]

我想创建一个包含键列表值的字典,我该如何通过字典理解来做到这一点?

即:

{1: [2,3,4]
2: [1,2,3]
}

我尝试了以下方法,但每次迭代时列表都会被覆盖。

{x: [y] for x,y in data}

最佳答案

你可以使用这个字典理解:

d = {x: [v for u,v in data if u == x] for x,y in data}

但是请注意,这是非常低效的,因为它将循环整个列表 n+1 次!

最好只使用普通的 for 循环:

d = {}
for x,y in data:
d.setdefault(x, []).append(y)

或者,您也可以使用 itertools.groupy (自己发现的):

groups = itertools.groupby(sorted(data), key=lambda x: x[0])
d = {k: [g[1] for g in group] for k, group in groups}

在所有情况下,d 最终都是 {1: [2, 3, 4], 2: [1, 2, 3]}

关于 python 2.7 : Appending to a list value of a dictionary key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28718700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com