it-swarm.com.de

Elemente in einer Liste zusammenfassen

Hier ist mein Code, ich muss eine undefinierte Anzahl von Elementen in der Liste summieren. Wie macht man das?

l = raw_input()
l = l.split(' ')
l.pop(0)

Meine Eingabe: 3 5 4 9 Nach der Eingabe lösche ich das erste Element über l.pop(0). Nach .split(' ') lautet meine Liste ['5', '4', '9'] und ich muss alle Elemente in dieser Liste summieren.

In diesem Fall ist die Summe 18. Bitte beachten Sie, dass die Anzahl der Elemente nicht definiert ist.

51
treng

Sie können Zahlen in einer Liste einfach mit dem integrierten sum () summieren:

sum(your_list)

Es werden so viele Elemente addiert, wie Sie haben. Beispiel:

my_list = range(10, 17)
my_list
[10, 11, 12, 13, 14, 15, 16]

sum(my_list)
91

Für Ihren speziellen Fall:

Für Ihre Daten konvertieren Sie zuerst die Zahlen in int und summieren Sie dann die Zahlen:

data = ['5', '4', '9']

sum(int(i) for i in data)
18

Dies funktioniert für undefined Anzahl der Elemente in Ihrer Liste (solange es sich um "Zahlen" handelt)

Vielen Dank für die erneute Konvertierung des Kommentars von @ senderle, falls die Daten im String-Format vorliegen.

129
Levon
>>> l = raw_input()
1 2 3 4 5 6 7 8 9 10
>>> l = l.split()
>>> l.pop(0)
'1'
>>> sum(map(int, l)) #or simply sum(int(x) for x in l) , you've to convert the elements to integer first, before applying sum()
54
7

Python iterable kann wie folgt summiert werden - [sum(range(10)[1:])] . Dies summiert alle Elemente mit Ausnahme des ersten Elements aus der Liste.

>>> atuple = (1,2,3,4,5)
>>> sum(atuple)
15
>>> alist = [1,2,3,4,5]
>>> sum(alist)
15
5

Sie können sum verwenden, um die Elemente einer Liste zusammenzufassen. Wenn Ihre Liste jedoch aus raw_input stammt, möchten Sie die Elemente wahrscheinlich zuerst in int oder float konvertieren:

l = raw_input().split(' ')
sum(map(int, l))
2
unkulunkulu

Sie können die Funktion map und die in sum() eingebauten Pythons verwenden. Es vereinfacht die Lösung. Und reduziert die Komplexität.
a=map(int,raw_input().split())
sum(a)
Getan!

1
Shreyaa Sridhar

Sie können auch die reduzierte Methode verwenden:

>>> myList = [3, 5, 4, 9]
>>> myTotal = reduce(lambda x,y: x+y, myList)
>>> myTotal
21

Außerdem können Sie die Lambda-Funktion ändern, um andere Operationen auf Ihrer Liste auszuführen.

0
Chappleton
def sumoflist(l):    
    total = 0    
    for i in l:
        total +=i
    return total
0
niksy