Как можно сформировать список словарей, содержащих только пары ключ-значение из исходного словаря, в которых значение равно 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))