比较python列表中的一系列数字

时间:2016-02-27 02:25:27

标签: python list comparator minimum

我想制作一个循环来取一个数字,与下一个数字进行比较,如果条件为真,则用下一个数字替换这个数字,然后将这个数字与下一个数字进行比较,直到这个数字不符合条件。 。 我尝试了这段代码,但循环不起作用。

list = [9,4,3,1,8,10,4,3,2]

for i,item in enumerate(list):
        p = item  
        while p > list[i+1]:
              p = list[i+1]            

        else:
              print(p)

2 个答案:

答案 0 :(得分:3)

您可以在列表中找到本地最小值(我希望输出数字:1和2(波浪中的最小点)):

>>> data = [9, 4, 3, 1, 8, 10, 4, 3, 2]

通过向两端添加无穷大,以便最后找到第一个和最后一个元素:

>>> padded = [float('inf')] + data + [float('inf')]

并将值与左侧和右侧的值进行比较:

>>> [v2 for v1, v2, v3 in zip(padded[:-2], padded[1:-1], padded[2:]) if v1 > v2 < v3]
[1, 2]

答案 1 :(得分:0)

list = [9,4,3,1,8,10,4,3,2]

list.append(float('Inf'))
for i,item in enumerate(list[:-1]):
    if i == 0:
        # skip this one, but make i count from 0
        continue

    if list[i-1] > item < list[i+1]:
        print(item)