Advertisement
funcelot

python groupby example

Dec 30th, 2022 (edited)
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | Source Code | 0 0
  1. from collections import namedtuple
  2. from itertools import groupby, count
  3.  
  4.  
  5. Student = namedtuple('Student', ['surname', 'name', 'grade'])
  6.  
  7. students = [Student('Гагиев', 'Александр', 10), Student('Дедегкаев', 'Илья', 11), Student('Кодзаев', 'Георгий', 10),
  8. Student('Набокова', 'Алиса', 11), Student('Кораев', 'Артур', 10), Student('Шилин', 'Александр', 11),
  9. Student('Уртаева', 'Илина', 11), Student('Салбиев', 'Максим', 10), Student('Капустин', 'Илья', 11),
  10. Student('Гудцев', 'Таймураз', 11), Student('Перчиков', 'Максим', 10), Student('Чен', 'Илья', 11),
  11. Student('Елькина', 'Мария', 11),Student('Макоев', 'Руслан', 11), Student('Албегов', 'Хетаг', 11),
  12. Student('Щербак', 'Илья', 10), Student('Идрисов', 'Баграт', 11), Student('Гапбаев', 'Герман', 10),
  13. Student('Цивинская', 'Анна', 10), Student('Туткевич', 'Юрий', 11), Student('Мусиков', 'Андраник', 11),
  14. Student('Гадзиев', 'Георгий', 11), Student('Белов', 'Юрий', 11), Student('Акоева', 'Диана', 11),
  15. Student('Денисов', 'Илья', 11), Student('Букулова', 'Диана', 10), Student('Акоева', 'Лера', 11)]
  16.  
  17.  
  18. grouper = lambda x: x.name
  19.  
  20. # Предварительно сортируем.
  21. data = sorted(students, key=grouper)
  22.  
  23. for key, group_items in groupby(data, key=grouper):
  24. print('Key: %s' % key, [i.surname for i in group_items])
Tags: python groupby
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement