Python-获取具有相同第一个值的元组的总和

元组是有序但不可更改的python集合或数组。如果我们得到多个第一个元素相同的元组,那么当我们需要添加第一个元素相等的那些元组的第二个元素时,我们可能会遇到这种情况。

使用map和for循环

在这种方法中,我们将首先考虑由元组组成的列表。然后将它们转换为字典,以便我们可以将元组中的元素关联为键值对。然后,我们应用for循环,将字典中每个键的值相加。最后,使用map函数返回具有汇总值的列表。

示例

List = [(3,19),(7, 31), (7, 50), (1, 25.5), (1, 12)]

# Converting it to a dictionary

tup = {i:0 for i, v in List}

for key, value in List:

   tup[key] = tup[key]+value

# using map

result = list(map(tuple, tup.items()))

print(result)

运行上面的代码将为我们提供以下结果:

输出结果

[(3, 19), (7, 81), (1, 37.5)]

使用集合

在这里,我们采用与上述类似的方法,但是使用collections模块的defaultdict方法。现在,我们不使用map函数,而是访问字典项并将其转换为列表。

示例

from collections import defaultdict

# list of tuple

List = [(3,19),(7, 31), (7, 50), (1, 25.5), (1, 12)]

dict = defaultdict(int)

for key, value in List:

   dict[key] = dict[key]+value

# Printing output

print(list(dict.items()))

运行上面的代码给我们以下结果

输出结果

[(3, 19), (7, 81), (1, 37.5)]

以上是 Python-获取具有相同第一个值的元组的总和 的全部内容, 来源链接: utcz.com/z/345427.html

回到顶部