У меня есть словарь, который содержит тикеры: данные
tickers = {'BTC': [200, 149, 98, 44], 'ETH': [200, 320, 405, 460]}
Я написал функцию, которая может узнавать состояние из условия.
Всего 4 различных состояния
prev и now - ставнение 2 элементов в листе друг с другом. Сегодня и вчера
Например для BTC:
149 и 200
98 и 149
44 и 98
# check state . Описываем состояния для условия. Может быть 4 различных
def check_state(now, prev):
state = None
if now >= prev:
if now <= 1.5 * prev:
state = 0
if now >= 1.5 * prev:
state = 1
if now < prev:
if now * 1.5 >= prev:
state = 2
if now * 1.5 < prev:
state = 3
# возвращаем состояние
return state
Теперь я хочу прогнать по всем элементам словаря и узнать состояние в каждой точке и на выходе получить такой же словарь состояний. Например Должно получиться так
tickers_state = {'BTC': [None, 3, 3, 3], 'ETH': [None, 1, 0, 0]}
У первого элемента нет состояния, так как у него нет предыдущего значения.
Как грамотно сделать?
P.S. Я:
1)Итерирую все элементы в tickers
2)Итерирую все элементы в list
3)Вызываю функцию check_state и получаю state
Вопросы:
Как исключить первый элемент, так как у него нет предыдущего и состояние None
Что подавать в качестве параметра функции check_state ?