鉴于这两个列表
L2 = [A,B,C,D,A,B]
L3 = [3,2,1,2,2,1]
我想获得
L2_WANTED = [A,B,C,D]
L3_WANTED = [5,3,1,2]
列表始终是有序的,并且相同的大小和元素对应为键值对,例如 A:3、B:2 等。
目标是消除 L2 中的重复项并将 L3 中的相应项求和以获得具有匹配对的新列表。这是为了在将项目添加到列表时保持项目的运行列表。
我试图写一个函数,index
但它开始变得丑陋。我查了一下itertools
,但找不到任何相关的东西;我看了看,starmap()
但无法让它工作。可能这也可以通过列表理解来完成。我将不胜感激有关如何实现这种最简单方法的任何线索或方向。谢谢你。
编辑
@西蒙C:
>>> l2_sum = {}
>>> for i in range(0, len(L2)):
key = L2[i]
num = L3[i]
l2_sum[key] = l2_sum.get(key, 0) + num
>>> l2_sum
{'A': 5, 'C': 1, 'B': 3, 'D': 2}
>>>
这如何消除欺骗并添加数字?你能给个线索吗?谢谢。