Перейти к содержимому

Группировка списков в Python

Python — это высокоуровневый язык программирования, который становится всё более популярным среди разработчиков благодаря простоте использования и универсальности. Одна из ключевых особенностей Python — поддержка списков, мощной структуры данных, которая позволяет пользователям хранить, организовывать и обрабатывать данные гибким и эффективным образом. В этой главе мы подробно разберём списки в Python и предоставим исчерпывающее руководство, которое поможет вам эффективно научиться их группировать.

Группировка списка означает организацию его элементов в подгруппы на основе общего признака или ключа. Это частая задача при обработке наборов данных, фильтрации записей или подготовке данных для анализа. Python предоставляет несколько встроенных инструментов и модулей стандартной библиотеки для решения этой задачи без написания сложных циклов.

python
from collections import defaultdict

data = [
    {'category': 'fruit', 'name': 'apple'},
    {'category': 'vegetable', 'name': 'carrot'},
    {'category': 'fruit', 'name': 'banana'},
    {'category': 'vegetable', 'name': 'broccoli'},
]

grouped = defaultdict(list)
for item in data:
    grouped[item['category']].append(item)

print(dict(grouped))
# Output: {'fruit': [{'category': 'fruit', 'name': 'apple'}, {'category': 'fruit', 'name': 'banana'}], 'vegetable': [{'category': 'vegetable', 'name': 'carrot'}, {'category': 'vegetable', 'name': 'broccoli'}]}

Этот подход использует collections.defaultdict для автоматической инициализации списков для новых ключей, что делает агрегацию элементов по определённому атрибуту максимально простой. В следующих разделах мы рассмотрим дополнительные методы, включая словарные выражения и itertools.groupby, чтобы эффективно решать различные задачи группировки.

Практика

Какие способы объявления списка в Python являются верными?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.