python汇总列表中的左右组件

时间:2016-05-13 09:46:51

标签: python list sum

我有一个清单:

key: [[1, 3, 4, 5, 3]]

我需要获得像

这样的列表
key: [[6, 5, 8, 7, 6]]

我怎么能用Python做到这一点?

3 个答案:

答案 0 :(得分:0)

一种简单的方法:

>>> my_list = [1, 3, 4, 5, 3]
>>> new_list = []    
>>> for i,x in enumerate(my_list):
...     if i==0:
...         new_list.append(my_list[-1] + my_list[i+1])
...     elif i==len(my_list)-1:
...         new_list.append(my_list[0] + my_list[i-1])
...     else:
...         new_list.append(my_list[i-1] + my_list[i+1])
... 
>>> new_list
... [6, 5, 8, 7, 6]

答案 1 :(得分:0)

你可以使用列表理解:

[a[i-1]+(a+a[:1])[i+1] for i in range(len(a))]

这是因为:

  • a[-1]返回列表的最后一个元素
  • a+a[:1]将列表的第一个元素附加到结尾

答案 2 :(得分:0)

功能性方法:

from operator import add

list(map(add, key[1:]+key[:1], key[-1:] + key[:-1]))
# [6, 5, 8, 7, 6]