gpt4 book ai didi

python - 将两个列表合并到字典中并对第二个列表的元素求和

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:14 24 4
gpt4 key购买 nike

如果我有两个列表(长度相同):

ls1 = ['a','b','c','a','d','c']
ls2 = [1,2,3,5,1,2]

我想得到以下字典(如果它是同一个键,则对值求和):

d = {'a':6,'b':2,'c':5,'d':1}

我做了以下事情:

ls1 = np.array(ls1)
ls2 = np.array(ls2)
uniqe_vals = list(set(ls1))
d = {}
for u in uniqe_vals:
ind = np.where(ls1 == u)[0]
d[u] = sum(ls2[ind])

它适用于小数据,但对整个数据来说花费的时间太长(我有一个大小约为 500 万的列表)。您对更有效的方法有什么建议吗?

最佳答案

还有一个 defaultdict,但不同且更简单:

from collections import defaultdict

d = defaultdict(int)
for n, v in zip(ls1, ls2):
d[n] += v

或者,按照建议:

from collections import defaultdict
from itertools import izip

d = defaultdict(int)
for n, v in izip(ls1, ls2):
d[n] += v

关于python - 将两个列表合并到字典中并对第二个列表的元素求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28797668/

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