当前位置: 首页 > 面试题库 >

如何按字符串长度和字母顺序排序?

弘思聪
2023-03-14
问题内容

我目前是python的新手,并陷入了这个问题,似乎找不到正确的答案。

问题:给出一个单词列表,按长度顺序(最长到最短)返回相同单词的列表,第二个排序标准应按字母顺序。提示:您需要考虑两个功能

这是我到目前为止所拥有的:

def bylength(word1,word2):
    return len(word2)-len(word1)

def sortlist(a):
    a.sort(cmp=bylength)
    return a

它按长度排序,但我不知道如何将第二个标准应用于这种排序,即按字母顺序降序排列。


问题答案:

您可以按照以下两个步骤进行操作:

the_list.sort() # sorts normally by alphabetical order
the_list.sort(key=len, reverse=True) # sorts by descending length

Python的排序是稳定的,这意味着当长度相等时,按长度对列表进行排序会使元素按字母顺序排列。

您也可以这样做:

the_list.sort(key=lambda item: (-len(item), item))

通常,您永远不需要cmp它,甚至在Python3中将其删除。key更容易使用。



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

  • 问题内容: 我正在通过NEST c#使用ElasticSearch。我有很多关于人的信息 我希望能够按lastName以及长度的顺序对项目列表进行过滤和排序,因此名称中只有5个字符的人会出现在结果集的开头,然后是10个字符的人。 所以我想用一些伪代码做类似的事情 我是ElasticSearch的新手,所以任何示例都将非常有帮助。 问题答案: 您可以使用基于脚本的排序进行排序。 作为一个玩具示例,我

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

  • 问题内容: 我有在另一个主题上找到的这段代码,但是该代码按连续字符而不是字母顺序对子字符串进行排序。如何按字母顺序更正?它打印出来了,我想打印。谢谢 ps:我是python的初学者 问题答案: 尝试更改此: 对此: 这将显示您的示例输入字符串。代码更简单,因为您正试图解决一个更简单的问题:-)

  • 问题内容: 我想按字母顺序比较上述两个字符串(在本例中为“ Project”,然后是“ Sunject”,因为“ P”在“ S”之前)。有谁知道如何用Java做到这一点? 问题答案: 可能需要或可能不需要。 如果需要本地化的字符串排序,请查看此链接。

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