在Python中的2d列表的行中的特定范围的总和

时间:2017-05-04 16:53:20

标签: python list sum 2d

我有一个2d列表,比如[[1,2,3,4],[5,6,7,8,9]]。我知道我可以通过sum(a[0])获得第一行的总和。但是,如果我需要前两个或三个项目的总和,该怎么办?伪代码应该是这样的:
sum(a[0,1:N]) == 0表示第0行中1到N个元素的总和。

3 个答案:

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