我有这样一个字符串:
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/