2024-09-26 18:06:19 发布
网友
如果我有一个列表,我想继续添加行,并按姓氏的字母顺序对它们进行排序,这怎么可能做到呢? 排序似乎只是按字符串的第一个字母重新排列它们。
line = "James Edward" #Example line linesList.append("".join(line)) #Add it to a list linesList = sorted(linesList) #Sort alphabetically
linesList.sort(key=lambda s: s.split()[1])
更多信息:https://wiki.python.org/moin/HowTo/Sorting#Key_Functions
假设名称的格式为FirstName<whitespace>LastName,则可以使用sorted的^{}参数:
FirstName<whitespace>LastName
sorted
>>> lst = ['Bob D', 'Bob A', 'Bob C', 'Bob B'] >>> lst = sorted(lst, key=lambda x: x.split()[1]) >>> lst ['Bob A', 'Bob B', 'Bob C', 'Bob D'] >>>
同样的原则也适用于list.sort:
list.sort
>>> lst = ['Bob D', 'Bob A', 'Bob C', 'Bob B'] >>> lst.sort(key=lambda x: x.split()[1]) >>> lst ['Bob A', 'Bob B', 'Bob C', 'Bob D'] >>>
另外,如果您需要它们,这里有一个关于^{}的引用和一个关于^{}的引用。
如果您想要完全正确的字母顺序(当姓氏相同时按名字排序),可以利用Python排序是稳定的这一事实。如果首先按默认键排序:
lst.sort()
然后按姓氏排序:
lst.sort(key=lambda n: n.split()[1])
然后,具有相同姓氏的条目将以第一个sort放入它们的相同顺序结束,这将是正确的。
sort
您还可以使用sorted一次完成这一切:
linesList = sorted(sorted(linesList), key=lambda n: n.split()[1])
更多信息:https://wiki.python.org/moin/HowTo/Sorting#Key_Functions
假设名称的格式为} 参数:
FirstName<whitespace>LastName
,则可以使用sorted
的^{同样的原则也适用于
list.sort
:另外,如果您需要它们,这里有一个关于^{} 的引用和一个关于^{} 的引用。
如果您想要完全正确的字母顺序(当姓氏相同时按名字排序),可以利用Python排序是稳定的这一事实。如果首先按默认键排序:
然后按姓氏排序:
然后,具有相同姓氏的条目将以第一个
sort
放入它们的相同顺序结束,这将是正确的。您还可以使用
sorted
一次完成这一切:相关问题 更多 >
编程相关推荐