繁体   English   中英

用于枚举和 zip 的反向迭代

[英]Backward iteration using for enumerate and zip

我想将列表从最后一个循环到第一个并比较相邻元素。 为了比较每两个并获得索引,我有一个前向循环:

for index, (num1, num2) in enumerate(zip(x,x[1:]))
    do something

但是如何从最后一个开始循环呢?

枚举索引不能倒计时(但你可以应用简单的算术)。

您可以反转两个列表,

for idx, (num1, num2) in enumerate(zip(x[::-1], x[::-1][1:])):
    ...  # do something

正如 gruntfutuk 指出的那样,枚举不能倒计时。 相反,您可以使用内置的范围 function 并向后工作。 这是解决问题的另一种方法:

arr = [1,3,4]
for i in range(-1, -len(arr) - 1, -1): # i will go from -1 to -3
    if i > -len(arr): # i will stop at -2
        if arr[i] == arr[i-1]:# compares arr[-1] to arr[-2] and arr[-2] to arr[-3]
            doSomething

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM