如何检查列表中的数字是否大于它之前的数字-Python

时间:2018-11-15 04:35:01

标签: python

我将3组数据压缩在一起(日期,某个数字,价格)。我想遍历表,每当某数字小于列表中它之前的某数字时,我都希望提取发生这种情况的日期,某数字,价格。目前我只有:

for a,b,c in zip(date,somenumber,price):
    print(a,b,c)

并显示类似以下内容:

2018-01-30 18:42:00 859235 6.95
2018-02-01 09:08:00 323405 7.43
2018-02-02 15:16:00 528963 6.4
2018-02-05 18:48:00 808739 7.91
2018-02-07 14:42:00 462541 7.33
2018-02-10 18:48:00 598001 6.21
2018-02-11 03:32:00 650558 7.31
2018-02-11 11:28:00 670392 6.21

当某个数字从808739变为462541时,我想返回该较低数字的数据: 2018-02-07 14:42:00 462541 7.33

谢谢!

2 个答案:

答案 0 :(得分:6)

这将比较somenumber + 1和somenumber,如果somenumber + 1(序列中的下一个数字小于当前数字),它将打印该行的所有数据。如果不小于2,则不会打印任何内容。

for a,b,c,d in zip(date, somenumber, somenumber[1:], price):
    if c < b:
        print(a, b, c, d)

答案 1 :(得分:2)

我从问题中了解到的是,每次somenumber的值在下一行减小时,它应该打印该行。这很容易实现。只需将先前的值存储在另一个变量(prev_number)中。不过,对于第一行,我们需要将prev_number初始化为可能的最小数目。解决方法如下:

import sys
prev_number = -sys.maxint - 1    #initialize prev_number to lowest possible number in python
for a,b,c in zip(date,somenumber,price):
    if b < prev_number:
        print(a,b,c)
    prev_number = d

让我知道它是否对您有用。