2017-12-07 2 views
-1

Ich habe eine Liste mit dem Namen . Es enthält einige Elemente wie dieses.Hinzufügen von Elementen in einer Liste

p = [['mon', '1006'], ['mon', '769']]. 

Ich möchte die Werte wie (1006 + 769) und drucken Sie die Summe hinzuzufügen. Wie kann ich das machen??

Antwort

0

Dies sollte Ihnen eine Idee geben.

p = [['mon', '1006'], ['mon', '769']] 
sum = 0 
for x in p: 
    sum += int(x[1]) 
print sum 

Run:

$ python 2.py 
1775 
1

Sie dies ganz einfach eine Liste Verständnis unter Verwendung ist _ ein Wurf entfernt Variable und verwenden Sie nur das zweite Element n vom Auspacken der Listenelemente.

p = [['mon', '1006'], ['mon', '769']] 
print sum(int(n) for _, n in p) 
>1775 
0

Wenn Sie sagen, dass Sie den zweiten Wert der Elemente in Ihrer Liste zusammenzufassen wollen, versuchen Sie dies:

print(sum([int(element[1]) for element in p])) 
+0

Bitte korrigieren Sie die Syntax um die 'sum' Funktion. – Manjunath

+0

@Manjunath behoben. danke –

1

Dies ist eine sehr grundlegende Frage, so sollten Sie wahrscheinlich arbeiten durch die Python tutorial. Auch die Frage nach der Lösung, ohne selbst etwas zu versuchen, wird Python nicht beibringen.

Hier ist der direkteste, naive Ansatz, den Sie kommen mit haben könnte:

>>> p = [['mon', '1006'], ['mon', '769']] 
>>> total = 0 
>>> 
>>> for sublist in p: 
...  value = sublist[1] 
...  value_as_int = int(value) 
...  total = total + value_as_int 
... 
>>> print(total) 
1775 

das ist nur eine for Schleife, Grund Summierung und Indizierung in eine Liste. Ich erspare Ihnen die Züchter oneliner für jetzt, ich bin sicher, andere Antwort wird Ihnen diese zeigen.

+1

Sehr klarer Code, ein Anfänger kann das leicht verstehen :) – Manjunath

0

Sie können reduce verwenden,

l = [['mon', '1006'], ['mon', '769']] 
print reduce(lambda item1, item2: int(item1[1])+int(item2[1]), l) 

#output 1775 
Verwandte Themen