У меня есть такой список словарей:
students = [
{'name': 'alex','class': 'A'},
{'name': 'richard','class': 'A'},
{'name': 'john','class': 'C'},
{'name': 'harry','class': 'B'},
{'name': 'rudolf','class': 'B'},
{'name': 'charlie','class': 'E'},
{'name': 'budi','class': 'C'},
{'name': 'gabriel','class': 'B'},
{'name': 'dessy', 'class': 'B'}
]
Я хотел бы сгруппировать эти словари по классам, добавить их в список и добавить каждый список в список:
[[{'name': 'alex', 'class': 'A'},
{'name': 'richard', 'class': 'A'}],
[{'name': 'harry', 'class': 'B'},
{'name': 'rudolf', 'class': 'B'},
{'name': 'gabriel', 'class': 'B'},
{'name': 'dessy', 'class': 'B'}],
[{'name': 'john', 'class': 'C'},
{'name': 'budi', 'class': 'C'}],
[{'name': 'charlie', 'class': 'E'}]]
Я знаю, как отсортировать предыдущий список с помощью itemgetter:
import itertools
from operator import itemgetter
students = sorted(students, key=itemgetter('class'))
Как я могу сгруппировать их в список и создать список списков? Кроме того, в этом случае было бы лучше использовать наборы (порядок не имеет значения, если словари сгруппированы по классам).