比较列表中所有相邻元素的Pythonic方法

我想知道是否有更多的Pythonic方法来执行以下操作:

A = some list
i = 0
j = 1
for _ in range(1, len(A)):
    #some operation between A[i] and A[j]
    i += 1
    j += 1

我觉得这应该/可以做得不同.想法?

编辑:
因为有些人要求要求.我想要一个通用的答案.也许检查A [i],A [j]是否在某个范围之间,或者它们是否相等.或许我想做一个“涓涓细流”的元素.越普遍越好.

最佳答案
zip允许您组合多个迭代器:

for i,j in zip(range(0,len(A)-1), range(1,len(A))):
    #some operation between A[i] and A[j]

你也可以在范围对象上使用enumerate

for i,j in enumerate(range(1,len(A)):
    #some operation between A[i] and A[j]

请注意,与其他答案不同,这使您可以访问A的索引而不仅仅是项目,如果您想对A [i]或A [j]使用任何赋值,这是必要的,例如这里是一个非常基本的冒泡排序:

A = list(range(10))
found1=True
while found1:
    found1=False
    for i,j in enumerate(range(1,len(A))):
        if A[i] < A[j]:
            A[i],A[j] = A[j],A[i]
            found1=True
print(A)

这只有在迭代A的索引时才有可能.

转载注明原文:比较列表中所有相邻元素的Pythonic方法 - 代码日志