簡體   English   中英

python總結列表中的左右組件

[英]python sum right and left components in list

我有一個清單:

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

我需要得到像

key: [[6, 5, 8, 7, 6]]

我怎樣才能用 Python 做到這一點?

一個簡單的方法:

>>> 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]

你可以使用列表理解:

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

這是有效的,因為:

  • a[-1]返回列表的最后一個元素
  • a+a[:1]將列表的第一個元素附加到末尾

函數式方法:

from operator import add

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM