比较先前索引的列表

时间:2011-08-16 04:47:48

标签: python

我有两个列表,我想在之前与一个索引进行比较:

for (min,max) in zip(csv_parse(2010)['min'],csv_parse(2010)['max']):

基本上我想要这样的东西:

if min> min(后退一个增量)和max<最大值(回到增量值)

然后,做点什么。

谢谢!

2 个答案:

答案 0 :(得分:3)

from itertools import izip
prev_min, prev_max = float('inf'), float('-inf')

for new_min, new_max in izip(csv_parse(2010)['min'], csv_parse(2010)['max']):
    if (new_min > prev_min) and (new_max < prev_max):
        #do something
    prev_min, prev_max = new_min, new_max

如果执行想要对第一项“做某事”,请将prev_minprev_max的值切换到循环上方。

此外,您可能希望将izip用于此类内容。你也可能不想解析你的csv两次(一次是min,一次是max)但是我不知道肯定没看到csv_parse是什么。

答案 1 :(得分:0)

您可以执行以下操作:

min_values = csv_parse(2010)['min']
max_values = csv_parse(2010)['max']

for (prev_min, current_min, prev_max, current_max) in zip(min_values, min_values[1:], max_values, max_values[1:]):
    if current_min > prev_min and current_max < prev_max:
        …

此解决方案背后的想法是创建“先前值”列表以及“当前值”列表(…[1:])。