У меня есть 2 списка, для которых мне хотелось бы сравнить один индекс:
for (min,max) in zip(csv_parse(2010)['min'],csv_parse(2010)['max']):
в основном мне хотелось бы что-то вроде этого:
если min> min (назад один шаг) и max <max (назад при приращении)
то, сделайте что-нибудь.
Благодаря !
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_min
и prev_max
выше цикла, если вы хотите, чтобы "сделать что - то" по первому вопросу.
Кроме того, вы, вероятно, захотите использовать izip
для чего-то подобного. Вероятно, вы также не хотите анализировать свой csv дважды (один раз в минуту, один раз для максимального), но я не знаю точно, не видя, что такое csv_parse
.
Вы можете сделать следующее:
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:]
).
min
иmax
качестве имен переменных, кстати; это скрывает встроенные модули (которые, я смутно подозреваю, могут быть именно теми, которые вам нужны для краткого решения вашей проблемы ...)