我有一个2d列表,比如[[1,2,3,4],[5,6,7,8,9]]
。我知道我可以通过sum(a[0])
获得第一行的总和。但是,如果我需要前两个或三个项目的总和,该怎么办?伪代码应该是这样的:
sum(a[0,1:N]) == 0
表示第0行中1到N个元素的总和。
答案 0 :(得分:2)
你的问题不清楚你要求和你的第一个索引,即a [0] = 1 + 2 + 3 + 4 = 10
的总和上面的代码
sum = 0
for value in a[0]:
sum = sum + value
print sum
如果你想要所有元素的总和,直到N即1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45
lenth_of_array = len(a)
sum = 0
for i, array in enumerate(a):
for value in array[i]:
sum = sum + value
print sum
答案 1 :(得分:1)
切片列表需要迭代切片,而不是索引
a = [[1,2,3,4],[5,6,7,8,9]]
sum(a[0][0:3])
6
是1 + 2 + 3(a的前3个元素;记得python使用半开的间隔)
答案 2 :(得分:1)
ll = [[1,2,3,4],[5,6,7,8,9]]
def getSum(list_index,count):
# list_index = index of list.
# count = tuple , first and last index
return sum(ll[list_index][count[0]:count[1]+1])
result = getSum(0,(1,3))
print(result)
# getSum(0,(1,2))
# 0 = > list_index => [1,2,3,4]
# (1,2) => element (1 to 3) => 2 + 3 + 4 = 9