Pull to refresh

Группировка списка словарей по ключу с помощью Python

Решил поделиться с вами простым, но мощным решением, которое пригодится вам, если вам когда-либо потребуется преобразовать список словарей в один большой словарь с группировкой по одному общему ключу.

Давайте напишем код:

from collections import defaultdict
from datetime import date
from typing import List, Dict, Any


def group_dicts_by_key(data_list_dict: List[Dict[str, Any]], key_group: str) -> dict:
    """
    Функция для группировки списка словарей по указанному ключу.

    Args:
    data_list_dict (list): Исходный список словарей.
    key_group (str): Ключ для группировки.

    Returns:
    dict: Словарь со сгрупированными значениями.
    """
    grouped_dict = defaultdict(list)

    for item in data_list_dict:
        order = item[key_group]
        grouped_dict[order].append(item)

    return dict(grouped_dict)

Пример использования:

if __name__ == "__main__":
    data = [
        {'art': '123das', 'order_number_1': 472931549},
        {'art': 'dasdw', 'order_number_1': 474286313},
        {'art': 'cxzcz', 'order_number_1': 474269428},
        {'art': 'wezsa', 'order_number_1': 474286312},
        {'art': 'fasqw', 'order_number_1': 474286313}
    ]

    result_dict = group_dicts_by_key(data, 'order_number_1')
    print(result_dict)

Сохраняйте в закладки, чтоб не потерять и ставьте лайк, если было полезно.

Tags:
Total votes 3: ↑2 and ↓1+3
Comments3

Articles