我需要添加列表的前三个元素,然后添加列表的后三个元素,依此类推.这是我到目前为止的代码:
def get_triple_sums_List(a_List): new_List = [] for numbers in range(0,len(a_List)): numbers = sum(a_List[:3]) new_List.append(numbers) return new_List if a_List == []: return []
对于列表:
[1,5,3,4,2]
这反过来给了我结果:
[9]
我需要得到
[9,11]
如果剩下的数字小于3,它给我剩余的总和,即,
[1,6,2,3]
给我
[9,7]
和
[1,4]
给我吗
[9,4]解决方法 我们来分析你的代码吧!
def get_triple_sums_List(a_List): new_List = [] for numbers in range(0,len(a_List)): numbers = sum(a_List[:3]) #You should be using the variable #numbers here somehow. #^^^^^^^ - You are overwriting the for-loop index. new_List.append(numbers) return new_List #Why are you returning here? You should be #appending to `new_List`. if a_List == []: return []
这是固定代码:
def get_triple_sums_List(a_List): new_List = [] for index in range(0,len(a_List),3): #Range takes a 3rd param! total = sum(a_List[index:index+3])#Get all the elements from the #index to index+3 new_List.append(total) return new_List
更新:似乎正在进行缩短比赛 – 我不想被抛在后面.这是一个我想添加到列表中的丑陋版本.
>>> a = [1,7,8]>>> a += [0]*(len(a)%3) #For people who are too lazy to import izip_longest>>> map(sum,zip(a[::3],a[1::3],a[2::3]))[6,15,15]总结
以上是内存溢出为你收集整理的我需要创建一个列表,其中包含一次三个列表的所有总和,即添加前3个元素,然后是下一个3全部内容,希望文章能够帮你解决我需要创建一个列表,其中包含一次三个列表的所有总和,即添加前3个元素,然后是下一个3所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)