我知道sum(list)
的作品添加列表中的所有元素,但它不允許你選擇一個範圍。如何從列表中添加一系列整數元素? Python 3.3
例如:
l = [11, 22, 33, 44, 55, 66, 77]
x = 4
在這種情況下,我想添加l[0 : 4]
在一起。
我知道我可以做:
short_l = l[0 : x]
sum(short_l)
但有一個功能,可以讓我選擇一個列表中的元素的範圍內加在一起?
我知道sum(list)
的作品添加列表中的所有元素,但它不允許你選擇一個範圍。如何從列表中添加一系列整數元素? Python 3.3
例如:
l = [11, 22, 33, 44, 55, 66, 77]
x = 4
在這種情況下,我想添加l[0 : 4]
在一起。
我知道我可以做:
short_l = l[0 : x]
sum(short_l)
但有一個功能,可以讓我選擇一個列表中的元素的範圍內加在一起?
如果你不希望創建一個子列表,你可以使用itertools.islice
:
>>> import itertools
>>> l = [11, 22, 33, 44, 55, 66, 77]
>>> sum(itertools.islice(l, 0, 4))
110
爲什麼你需要一個新的功能呢?只要做sum(l[0:x])
。如果你真的想要一個功能,你可以自己定義一個:
def sum_range(lst, end, start=0):
return(sum(lst[start : end + 1]))
從指數增加開始到結束,包括結束。如果未指定,則開始默認爲索引0。
您可以使用內置的slice
函數來獲取項目的範圍,這樣
l, x = [11, 22, 33, 44, 55, 66, 77], 4
print(sum(l[slice(0, 4)]))
# 110
到slice
的參數是一樣的slicing syntax。
你想要的功能來選擇或內建函數來選擇範圍和補充的嗎? – thefourtheye
要麼是真的... – Gronk