我如何仅将列表中的数字与python中的下一个数字(邻居)进行比较?

问题描述 投票:1回答:5

我要做的就是将列表中的第一个数字与同一列表中的第二个数字进行比较,第二个与第三个数字进行比较...等等。>>

input: lst = lst = [1,2,3,2,1]

output: result = ["Lower", "Lower", "Higher", "Higher"](1低于2,2低于3,3高于2,2高于1)

有点难看(列表理解会很棒),但是我的处理方法是:

lst = [1,2,3,2,1]
result = []
x = 0

try:
    for i in range(len(lst)):
        if lst[x] > lst[x+1]:
            result.append("Higher")
            #print("Higher")
        else:
            result.append("Lower")
            #print("Lower")
        x = x+1
except IndexError:
    print(result)
    print("Out of range")```

[我要做的就是将列表中的第一个数字与同一列表中的第二个数字进行比较,第二个与第三个数字进行比较……等等。输入:lst = lst = [1,2,3,2,1]输出:结果= ...

python python-3.x list compare list-comprehension
5个回答
1
投票

使用zip()遍历列表:


1
投票

这里是列表理解


0
投票

由于您的字符串higherlower基本上是大于/小于布尔值的代理,因此您可以使用以下命令使其变得非常干净:


-1
投票

不是列表理解,但对于非Python的人可能更清楚:


-1
投票

您对try / except范例有正确的想法,但是您将整个循环包装在try块中。相反,您只想忽略发生IndexError的索引。所以试试这个:

© www.soinside.com 2019 - 2024. All rights reserved.