Сортировка списков (и любых других последовательностей)
Автор:admin Дата: 16 сентября 2020 г.Сложная сортировка списков
from operator import itemgetter, attrgetter, methodcaller
data = [
('Вася','25 лет','175 см'),
('Маша','12 лет','125 см'),
('Маша','11 лет','126 см'),
('Маша','10 лет','127 см'),
('Игорь','13 лет','180 см'),
('Катя','25 лет','165 см'),
('Катя','26 лет','175 см'),
('Катя','27 лет','172 см'),
('Катя','28 лет','171 см'),
]
# сортировка по первому значению. В данном списке по имени
for x in sorted(data):
print(x)
print()
# сортировка по первому значению. В данном списке по имени
for x in sorted(data,key=itemgetter(0)):
print(x)
print()
# сортировка по второму значению. В данном списке по возрасту
for x in sorted(data,key=itemgetter(1)):
print(x)
print()
# сортировка по третьему значению. В данном списке по росту
for x in sorted(data,key=itemgetter(2)):
print(x)
print()
# сортировка по первому значению, затем, внутри значений с одинаковым первым значением - по второму.
for x in sorted(data,key=itemgetter(0,1)):
print(x)
print()
# сортировка по первому значению, затем, внутри значений с одинаковым первым значением - по третьему.
for x in sorted(data,key=itemgetter(0,2)):
print(x)
print()