Как отсортировать строку в алфавитном порядке по запятой и отсортировать по алфавиту по фамилии членов? - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть такая строка:

students="John Dee johndee@gmail.com 555-555-5555,Jane Bee janebee@gmail.com 555-555-5555,Sarah Zee sarahzee@gmail.com 555-555-5555"

Я хочу взять эту строку и отделить ее запятыми, а затем отсортировать по фамилиям.Я думаю, что для этого мне, возможно, придется использовать функцию split, затем зациклить ее, сохранить каждый элемент в списке, а затем отсортировать его по первому индексу.Не уверен, как это сделать.

Что у меня так далеко:

def alphaOrder(students):
    mylist = []
    splitter = students.split(',')

    for i in splitter:
        mylist.append(i)

    mylist.sort(key=lambda n: split(' ')[1])
    print(mylist)

alphaOrder(students)

Спасибо

1 Ответ

0 голосов
/ 10 сентября 2018

Ваша логика может быть упрощена, так как sorted имеет аргумент key:

res = sorted(students.split(','), key=lambda x: x.split()[1])

['Jane Bee janebee@gmail.com 555-555-5555',
 'John Dee johndee@gmail.com 555-555-5555',
 'Sarah Zee sarahzee@gmail.com 555-555-5555']

Обратите внимание, что по умолчанию str.split - пробел, поэтому str.split(' ') не требуется.Кроме того, str.split возвращает объект list, поэтому нет необходимости выполнять итерации вручную и append.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...