将元素添加到某个索引

时间:2017-07-26 17:34:19

标签: python

所以我有一个数组[1,2,3,4,5,6,7,8,9,10] 我需要创建一个新的数组,将第一个5元素和下一个5元素加在一起,等等。所以1+2+3+4+5=156+7+8+9+10=40 [15,40]。我该怎么做呢?

5 个答案:

答案 0 :(得分:4)

你可以这样做:

>>> l1 =  [1,2,3,4,5,6,7,8,9,10]
>>> l2= [sum(l[n:n+5]) for n in range(0, len(l), 5)]
>>> l2
[15, 40]

答案 1 :(得分:1)

你可以这样做:

def sumEach5Element(input):
  o = []
  for i in range(0, len(input), 5):
    o.append(sum(input[i:i+5]))

  print(o)  

sumEach5Element([1,2,3,4,5,6,7,8,9,10])

答案 2 :(得分:1)

您可以按照以下流程操作:

arr1 = [1,2,3,4,5,6,7,8,9,10]
arr2 = [sum(arr1[:len(arr1)//2]), sum(arr1[len(arr1)//2:])]
print(arr2)
# output :
[15, 40]

答案 3 :(得分:0)

简单解决方案(我还考虑过一个数组,它有许多不能被5整除的元素):

my_array =  [1,2,3,4,5,6,7,8,9,10,11]
output_array = []
for i in range(len(my_array)/5): 
   tmp = my_array[i*5:(i+1)*5]
   output_array.append(sum(tmp))

# check if you can divide by 5
mod = len(my_array)%5
if mod > 0:
   output_array.append(sum(my_array[-mod::]))  

答案 4 :(得分:0)

arr = [1,2,3,4,5,6,7,8,9,10] 

def addList(sub): 
  result = sum(list(sub))
  return result

def breakTheList(arr, num):
    for i in range(0, len(arr), num):
        subDiv = arr[i:i + num]
        print(addList(subDiv))

breakTheList(arr, 5)
# 15 40

上面的代码可以将列表分成任意多个部分并添加这些部分。这是另一个例子

breakTheList(arr, 4)
#10 26 19