如何添加元组的特定元素

zaolee_dragon

我有:

([(5,2),(7,2)],[(5,1),(7,3),(11,1)])

我需要添加具有相同第一个元素的第二个元素。

输出:[(5,3),(7,5),(11,1)]

米吉尔森

这是一个很好的用例collections.Counter...

from collections import Counter
tup = ([(5,2),(7,2)], [(5,1),(7,3),(11,1)])
counts = sum((Counter(dict(sublist)) for sublist in tup), Counter())
result = list(counts.items()) 
print(result)

这里的一个缺点是您将失去输入的顺序。它们似乎是按键排序的,因此您可以对项目进行排序:

result = sorted(counts.items())

ACounter是一本字典,其目的是保存垃圾箱的“计数”。计数的设计巧妙,因此您可以将它们简单地加在一起(这将计数按“ bin-wise”进行添加-如果两个计数器中都不存在bin,则假定丢失的bin的值为0)。因此,这解释了为什么我们可以sum在大量计数器上使用以获得具有所需值的字典的原因。不幸的是,对于该解决方案,Counter不能通过使用产生2项序列(如法线贴图)的可迭代对象来实例化...,

Counter([(1, 2), (3, 4)])

将创建一个Counter带有按键(1, 2)(3, 4)-这两个值是1,它做,如果你有一个却映射创建为预期的工作:

Counter(dict([(1, 2), (3, 4)]))

Counter用键13(以及值24创建一个

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章