Напишите функцию, которая будет сортировать список авторов книг по их фамилиям.
Примечания
- В списке могут содержаться как полные имена, так и инициалы.
- Если указывается не только фамилия, то она идет последней (т.е. Александр Пушкин, а не Пушкин Александр).
- Имена, фамилии, инициалы могут писаться буквами в разных регистрах.
- Если две фамилии начинаются с одной буквы, верните их в том порядке, в котором они стоят в списке.
- Обратите внимание на пробелы между инициалами.
Примеры
sort_authors(["J. K. Rowling", "w. s.", "lewis carroll", "M. M."]) ➞ ["lewis carroll", "M. M.", "J. K. Rowling", "w. s."] sort_authors(["J. L.", "J. B. priestley", "L. C.", "Suzanne Collins"]) ➞ ["L. C.", "Suzanne Collins", "J. L.", "J. B. priestley"]
Варианты решений
def sort_authors(lst): return sorted(lst, key=lambda x: x.split()[-1].upper())
def sort_authors(lst): def last_lower(x): return x.split()[-1].upper() return sorted(lst, key=last_lower)
def sort_authors(lst): lst2 = [(i.split()[-1][0]) for i in lst ] lst3 = sorted([(i[0].lower(),j) for j,i in enumerate(lst2)]) return [lst[i[1]] for i in lst3]