Я снова застрял =( Есть такой словарь. Ключи -имена, значения - листы
{'BTC': [(None, None), (1, -0.4), (3, 0.3333333333333333), (0, 0.75), (1, None)], 'ETH': [(None, None), (0, 0.5), (0, 0.3333333333333333), (0, -0.1), (2, None)]}
Я хочу превратить его в лист из 4 словарей. Я понимаю, что если бы это был list, то можно сделать функцию zip и все, но как при этом сохранить ключи?
[{'BTC': (None, None), 'ETH': (None, None)}, {'BTC': (1, -0.4), 'ETH': (0, 0.5)}, {'BTC': (3, 0.3333333333333333), 'ETH': (0, -0.1)}, {'BTC': (1, None), 'ETH': (2, None)}]
Пока догадался конвертировать словарь в лист, и потом сделать list(zip(BTC, ETH)) и получаем нужное преобразование, но теряем ключи при этом. =(
P.S. Код
# Получаем на вход
{'BTC': [(None, None), (1, -0.4), (3, 0.3333333333333333), (0, 0.75), (1, None)], 'ETH': [(None, None), (0, 0.5), (0, 0.3333333333333333), (0, -0.1), (2, None)]}
def find_state(state):
coins = []
# Тут нужен список
all_list = [{'BTC': (None, None), 'ETH': (None, None)}, {'BTC': (1, -0.4), 'ETH': (0, 0.5)}, {'BTC': (3, 0.3), 'ETH': (0, -0.1)}, {'BTC': (1, None), 'ETH': (2, None)}] # чтобы считать только state для конкретного случая
for day in all_list:
for coin in day:
if day[coin][0] != None and state == 0 and day[coin][0] > 0:
coins.append(coin)
elif day[coin][0] != None and state == 1 and day[coin][0] <= 0:
coins.append(coin)
return coins
print(find_state(0))