如何对用逗号分隔的字符串按字母顺序排序,并按成员的姓氏按字母顺序排序?

时间:2018-09-10 18:43:07

标签: python list sorting

我有一个像这样的字符串:

ng-style

我想将此字符串用逗号分隔,然后按姓氏排序。我认为要执行此操作,可能需要使用split函数,然后将其循环,将每个项目保存到列表中,然后按第一个索引进行排序。不确定如何执行此操作。

到目前为止我所拥有的:

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"

谢谢

1 个答案:

答案 0 :(得分:4)

您的逻辑可以简化,因为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