Как добавлять в словарь со списками новые списки
Есть словари up_periods и down_periods, где я хочу хранить списки со значениями. Если биткоин растет каждый день, то я должен пополнять список значением этих дней. Если на следующий день курс биткоина падает, я должен этот готовый список добавить в словарь и добавлять уже падающий курс биткоина в down_periods.
данные:
{'2019-01-01': 3869.47, '2019-01-02': 3941.2167, '2019-01-03': 3832.155, '2019-01-04': 3863.6267, '2019-01-05': 3835.5983}
что я хочу сделать:
up_periods = {
'1': [2019-01-01, 2019-01-02 , 2019-01-05, 2019-01-04],
'2': [2019-01-10, 2019-01-11],
'3': [2019-01-25, 2019-01-26 , 2019-01-27, 2019-01-28, 2019-01-29],
}
Аналогично с словарем down_periods. Длина этого словаря и списка может быть любая.
Проблема: Не совсем понимаю как в цикле создавать новые списки, а также продолжать с места, когда цена начала падение.
мой код:
value = 0
up_periods = {}
down_periods = {}
values = []
for i in sorted(datesAndPrices):
values = []
for j in sorted(datesAndPrices):
# if datesAndPrices[i] <= value тут падение
if datesAndPrices[j] > value:
value = datesAndPrices[j];
values.append(j)
else:
up_periods.update({"key": values[0], "prices": values})
Ответы (1 шт):
Автор решения: Anton Buketov
→ Ссылка
Проблема была решена. Немного пришлось изменить свой код.
value = 0
up_periods = {}
down_periods = {}
values = []
# print(datesAndPrices)
keyValues = list(datesAndPrices.keys())
pos = -1
index = 0
for j in sorted(datesAndPrices):
pos += 1
if pos >= len(keyValues):
pos = len(keyValues)-1
if datesAndPrices[j] > value:
value = datesAndPrices[j]
values.append(j)
if datesAndPrices[keyValues[pos]] < value:
value = datesAndPrices[j]
index += 1
up_periods.update({str(index): values.copy()})
values.clear()
values.append(j)