当前位置: 首页 > 知识库问答 >
问题:

如何按字符串中的第二个单词按字母顺序对列表进行排序

叶建柏
2023-03-14

如果我有一个列表,并且我想不断地在其中添加行,并按姓氏的字母顺序对它们进行排序,那么如何才能做到这一点?“仅排序”似乎按字符串的第一个字母重新排列它们。

    line = "James Edward"   #Example line
    linesList.append("".join(line))   #Add it to a list
    linesList = sorted(linesList)   #Sort alphabetically

共有3个答案

莘翰采
2023-03-14

假设名称的格式为FirstName

>>> 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']
>>>

同样的原则也适用于列表。排序:

>>> 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']
>>>

此外,如果您需要,这里有一个关于lambda的参考,还有一个关于str.split的参考。

潘泰
2023-03-14

如果希望完全正确的字母排序(姓氏相同时按名字排序),可以利用Python排序是稳定的这一事实。如果首先按默认键排序:

lst.sort()

然后按姓氏排序:

lst.sort(key=lambda n: n.split()[1])

然后,姓氏相同的条目将按照第一次排序的顺序结束,这将是正确的。

您也可以使用sorted一次完成这一切:

linesList = sorted(sorted(linesList), key=lambda n: n.split()[1])
吴展
2023-03-14
linesList.sort(key=lambda s: s.split()[1])

更多信息:https://wiki.python.org/moin/HowTo/Sorting#Key_Functions

 类似资料:
  • 问题内容: 我想按字母顺序对JAVA中的字符串进行排序,如下所示:AaBbCcDdEeFfGg之后是大写字母和小写字母。例如,如果我把AbaC退还给我AabC,谢谢! 问题答案: 如果先将字符放入数组中,则可以使用进行此操作。(为了使用不区分大小写的自定义比较器,它必须是对象数组,而不是基元。)

  • 问题内容: 有没有一种简单的方法可以在Python中按字母顺序对字符串中的字母进行排序? 因此对于: 我想返回: 问题答案: 你可以做:

  • 问题内容: 我有一个包含国家/地区名称的对象。如何按字母顺序对列表进行排序? 问题答案: 假设这些是字符串,请使用方便的静态方法sort……

  • 按字母顺序排序字符串中的字符。 使用扩展运算符(...),Array.sort() 和 String.localeCompare() 对 str 中的字符进行排序,使用 String.join('') 重新组合。 const sortCharactersInString = str => [...str] .sort((a, b) => a.localeCompare(b))

  • 问题内容: 我在这里有点深,我希望这实际上是可能的。 我希望能够调用一个函数,该函数将按字母顺序对列表中的所有项目进行排序。 我一直在寻找通过jQuery UI进行排序,但事实并非如此。有什么想法吗? 问题答案: 你 不会 需要jQuery来做到这一点… 易于使用…

  • 问题内容: 我是Java的新手,正在尝试按字母顺序排列术语的arrayList。(一个术语定义为一个字符和一个整数)(例如 我的代码如下: 为什么这不起作用?以及我该如何完成呢?我的arrayList称为术语,填充有Term类型 问题答案: 您在这行代码中遇到的问题。您的课程不是So 的类型,这两个对象将基于哪个属性或条件方法? 您必须使您的类为Comparable类型。和,根据您的需要覆盖该方法