Как можно сформировать список словарей, содержащих только пары ключ-значение из исходного словаря, в которых значение равно 0?
Исходный словарь:
{
'2023-02-05': 0.0,
'2023-02-13': 24365.5,
'2023-02-15': 0.0,
'2023-03-13': 36846.51,
'2023-03-15': 58269.77,
'2023-03-19': 0.0,
'2023-03-24': 0.0,
'2023-04-13': 37025.5,
'2023-05-15': 74051.0,
'2023-06-13': 111076.5,
'2023-06-16': 0.0,
'2023-06-24': 0.0,
'2023-07-04': 0.0,
'2023-07-13': 148102.0,
'2023-07-23': 0.0
}
Ожидаемый результат:
[
{
'2023-02-13': 24365.5,
'2023-02-15': 0.0
},
{
'2023-03-13': 36846.51,
'2023-03-15': 58269.77,
'2023-03-19': 0.0
},
{
'2023-04-13': 37025.5,
'2023-05-15': 74051.0,
'2023-06-13': 111076.5,
'2023-06-16': 0.0
},
{
'2023-07-13': 148102.0,
'2023-07-23': 0.0
}
]
Вы можете использовать следующий код для создания списка словарей, содержащих только пары ключ-значение из исходного словаря, в которых значение равно 0:
```python
# Исходный словарь
source_dict = {
'2023-02-05': 0.0,
'2023-02-13': 24365.5,
'2023-02-15': 0.0,
'2023-03-13': 36846.51,
'2023-03-15': 58269.77,
'2023-03-19': 0.0,
'2023-03-24': 0.0,
'2023-04-13': 37025.5,
'2023-05-15': 74051.0,
'2023-06-13': 111076.5,
'2023-06-16': 0.0,
'2023-06-24': 0.0,
'2023-07-04': 0.0,
'2023-07-13': 148102.0,
'2023-07-23': 0.0
}
# Создание списка словарей
result_list = []
temp_dict = {}
for key, value in source_dict.items():
if value == 0.0:
temp_dict[key] = value
elif temp_dict:
result_list.append(temp_dict)
temp_dict = {}
if temp_dict:
result_list.append(temp_dict)
# Вывод результата
print(result_list)
```
Этот код проверяет каждую пару ключ-значение в исходном словаре. Если значение равно 0.0, то эта пара добавляется во временный словарь `temp_dict`. Когда встречается пара с ненулевым значением, временный словарь добавляется в список `result_list`, а затем снова очищается для хранения следующих пар с нулевыми значениями. В конце, если временный словарь не пустой, он также добавляется в список `result_list`. Результат выводится на экран в виде списка словарей, удовлетворяющих условию.
arr = list(d.items())
# Разделение элементов списка на группы
grouped = []
for i, n in enumerate(arr):
if n[1] and not (i and arr[i - 1][1]):
grouped.append([])
if len(grouped) and (n[1] or arr[i - 1][1]):
grouped[-1].append(n)
# Преобразование групп в словари
result = list(map(dict, grouped))