python - 如何按字母顺序对由逗号分隔的字符串进行排序并按成员姓氏的字母顺序排序?

标签 python list sorting

我有这样一个字符串:

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)

谢谢

最佳答案

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

关于python - 如何按字母顺序对由逗号分隔的字符串进行排序并按成员姓氏的字母顺序排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52263695/

相关文章:

c# - 如何用直接实例分配替换列表项

javascript - 如何使用javascript对json类型数据进行排序?

python - 在不知道内部列表数量的情况下遍历列表列表

python - 使用循环获取数据框列中的列表项

python - 通过引用更改类属性

python - 具有连续替代符号的值的最大子序列的大小?

python - 展平具有类型列表值的列,同时在 Pandas 中相应地复制另一列的值

python - 将 numpy 数组添加到列表 python

javascript - 按外部值对多维对象文字数组进行排序

jquery - 在 jquery 中对多个 html 表进行排序