[英]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.