[英]Compare two adjacent elements in same list
我已经通过了一个帖子,但我想知道我在使用for
循环时在代码中做错了什么。
列出a
给定为:
a = [2, 4, 7,1,9, 33]
我只想比较两个相邻的元素:
2 4
4 7
7 1
1 9
9 33
我做了类似的事情:
for x in a:
for y in a[1:]:
print (x,y)
您的外循环会持续存在于内循环中的每个值。 要比较相邻元素,您可以使用自身的移位版本 zip
列表。 可以通过列表切片实现移位:
for x, y in zip(a, a[1:]):
print(x, y)
在一般情况下,您的输入是任何可迭代而不是列表(或另一个支持索引的可迭代),您可以使用itertools
pairwise
配方 ,也可以在more_itertools
库中使用:
from more_itertools import pairwise
for x, y in pairwise(a):
print(x, y)
您正在将稳定元素与列表中的所有元素进行比较,但第一个元素。
正确的方法是:
for i in range(len(a)-1):
x = a[i]
y = a[i+1]
print (x,y)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.