I have a list ["Roll_Number","Marks in subjects"]:
list_1=[(1,22),(1,22),(2,29),(2,16),(3,56),(4,32),(4,12)]
I tried this code in python to get sum of all subjects for each roll_no :
sub_sum = [0] * 4 #Roll No :4
if i in range(0,len(list1)):
if k in range(0,5):
if (list1[i][0]==k):
sub_sum[k] = list1[i][1] + sub_sum[k]
i=i+1
else:
k=k+1
break
Getting an infinite loop.
Expected Result : 1:44 , 2:45, 3:56 , 4:44
Thanks in advance.
Since your list is sorted by first element already, you can use
itertools.groupby
for a relatively simple one-line solution:Using defaultdict
You can do that as follows:
DEMO
you can also use the
groupby
fromitertools
Not the most intuitive