簡體   English   中英

比較同一列表中的兩個相鄰元素

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

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