簡體   English   中英

對列表中的元素求和

[英]Summing elements in a list

這是我的代碼,我需要對列表中未定義數量的元素求和。 這個怎么做?

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

我的輸入: 3 5 4 9輸入后,我通過l.pop(0)刪除第一個元素。 .split(' ')我的列表是['5', '4', '9'] ,我需要對這個列表中的所有元素求和。

在這種情況下,總和為 18。請注意,未定義元素的數量。

您可以簡單地使用內置sum()對列表中的數字求和:

sum(your_list)

它將匯總盡可能多的數字項。 例子:

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

sum(my_list)
91

對於您的具體情況

對於您的數據,首先將數字轉換為int ,然后將數字相加:

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

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

這將適用於列表中未定義數量的元素(只要它們是“數字”)

感謝@senderle 的評論重新轉換,以防數據為字符串格式。

>>> 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

Python iterable 可以像這樣求和 - [sum(range(10)[1:])] 這將列表中除第一個元素之外的所有元素相加。

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

您還可以使用 reduce 方法:

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

此外,您可以修改 lambda 函數以在列表中執行其他操作。

您可以使用sum對列表的元素求和,但是如果您的列表來自raw_input ,您可能希望先將項目轉換為intfloat

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

您可以使用map函數和 python 內置的sum()函數。 它簡化了解決方案。 並降低了復雜性。
a=map(int,raw_input().split())
sum(a)
完畢!

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM