Given a tuple containing a bunch of integer elements, how can one find the sum of all the elements?
For example, if I have a list of tuples:
li = [(1
You could use list comprehension.
>>> li = [(1, 2), (1, 3), (2, 3)]
>>> [x+y for (x,y) in li]
[3, 4, 5]
Both solutions below will work.
li = [(1, 2), (1, 3), (2, 3)]
print([sum(i) for i in li])
or
def sumtupleinlist(lst):
return [sum(i) for i in lst]
li = [(1, 2), (1, 3), (2, 3)]
To test the function, run :
print(sumtupleinlist(li))
You can use map and sum function like this
>>> li = [(1, 2), (1, 3), (2, 3)]
>>> map(sum, li)
[3, 4, 5]
Alternatively you can use list comprehension, like this
>>> [sum(tup) for tup in li]
[3, 4, 5]
Note: I personally prefer the list comprehension version, because map function in Python 3.x will return an iterable map
object, which needs to be explicitly converted to a list, like this list(map(sum, li))
.
>>> li = [(1, 2), (1, 3), (2, 3)]
>>> map(sum, li)
<map object at 0x7f3dc25bb0f0>
>>> type(map(sum, li))
<class 'map'>
>>> list(map(sum, li))
[3, 4, 5]
But list comprehension will give a list in both Python 2.x and Python 3.x.
ls= [(1,2), (3,4)]
finallist = []
for tuple in ls:
listt = list(tuple)
summ = 0
for m in listt:
summ+=m
finallist.append(summ)
print(finallist) #[3,7]
For beginner:
for
loop.Demo:
>>> li = [(1, 2), (1, 3), (2, 3)] # Given Input
>>> result = [] # Step 1
>>> for i in li: # Step 2
... tmp_sum = 0 # Step 3
... for j in i: # Step 3
... tmp_sum += j # Step 4
... result.append(tmp_sum) # Step 5
...
>>> print result
[3, 4, 5]