簡體   English   中英

如何在Python 3中的列表中向后減去?

[英]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做類似的事情?

使用mapoperatoritertools.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.

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