gpt4 book ai didi

python - 首先按长度对字符串数组进行排序,然后在 Python 3 中按字母顺序排序

转载 作者:太空狗 更新时间:2023-10-30 02:16:02 25 4
gpt4 key购买 nike

如何在 python 中先按单词的长度(从最长到最短)对数组进行排序,然后再按字母顺序排序?

我的意思是:

我有这个列表:WordsArray = ["Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit", "sed", "do", "eiusmod", "tempor", "incididunt"]

我想输出这个:['consectetur', 'adipiscing', 'incididunt', 'eiusmod', 'tempor', 'dolor', 'ipsum', 'Lorem', 'amet', ' elit', 'sed', '坐', '做']

我已经可以使用 print (sorted(WordsArray)) 按字母顺序排序:

['Lorem', 'adipiscing', 'amet', 'consectetur', 'do', 'dolor', 'eiusmod', 'elit', 'incididunt', 'ipsum', 'sed', 'sit', 'tempor']

最佳答案

首先,使用just sorted不按字母顺序排序,看看你的输出...我很确定L 不在 a 之前。您目前正在做的是区分大小写 排序。

您可以使用 Key Function 执行不区分大小写 排序像这样:

>>> words_list = ["Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit", "sed", "do", "eiusmod", "tempor", "incididunt"]
>>> sorted(words_list, key=str.lower)
['adipiscing', 'amet', 'consectetur', 'do', 'dolor', 'eiusmod', 'elit', 'incididunt', 'ipsum', 'Lorem', 'sed', 'sit', 'tempor']

然后您可以修改 Key Function像下面这样先按长度排序,然后按字母顺序排序:

>>> def custom_key(str):
... return -len(str), str.lower()
...
>>> sorted(words_list, key=custom_key)
['consectetur', 'adipiscing', 'incididunt', 'eiusmod', 'tempor', 'dolor', 'ipsum', 'Lorem', 'amet', 'elit', 'sed', 'sit', 'do']

关于python - 首先按长度对字符串数组进行排序,然后在 Python 3 中按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46484895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com