[英]How to subtract backwards in a list in Python 3?
我試圖在Python中向后減去列表。 這是代碼:
list_1 = [1,2,5,7,9,85]
減法應如下所示:索引1-索引0,索引2-索引1,依此類推。 這是輸出:
1
3
2
2
76
我如何使用Python 3做類似的事情?
使用map
和operator
和itertools.islice
,這種方式可以避免中間列表的創建或內存開銷,也可以避免使用python native for
循環:
import operator
from itertools import islice
list_1 = [1,2,5,7,9,85]
result = list(map(operator.sub, islice(list_1, 1, None),list_1))
這里有一個現場例子
使用zip
:
[i - j for i, j in zip(list_1[1:], list_1)]
您可以使用老式的for循環:
for i in range(1, len(list_1)):
print list_1[i]-list_1[i-1]
嘗試這個:
list_1 = [1,2,5,7,9,85]
for i in range(len(list_1)-1,1,-1):
list_1[i] = list_1[i]-list_1[i-1]
print(list_1)
注意:向后迭代以獲得預期的答案。
使用列表理解的一線。
從零迭代到倒數第二個索引並進行減法。
[ (list_1[i+1] - list_1[i]) for i in range(len(list_1)-1)]
print [a[i+1]- a[i] for i in range(len(a)-1)]
這種單行返回一個列表,其元素是list_1中連續數字的差。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.