python:如何根据大写字母对列表进行排序,当第一个字母、大小写和长度时,它们的顺序应该保持不变

输入:sort_words ['零','yeLLow','狗','汉堡','x']

# 输出:['Burger', 'Dog', 'yeLLow', 'zero', 'x']

输入:sort_words ['鱼','水','海绵宝宝','球']

# 输出:['海绵宝宝', '水', '鱼', '球']

输入:sort_words ['猪','青蛙','猫']

# 输出:['猪', '猫', '青蛙']


心有法竹
浏览 211回答 2
2回答

一只斗牛犬

您可以使用内置sorted函数,但您需要提供一个函数来key应用您想要的排序逻辑。如果第一个字母大小写相同且字符串长度相同,则字符串列表中的项目相等。大写字母少于小写字母,长单词少于短单词。def sort_key(string):    return (string[0].islower(), -len(string))sorted(['Pig', 'frog', 'Cat'], key=sort_key)# output: ['Pig', 'Cat', 'frog']

九州编程

干得好:inputs=['zero', 'yeLLow', 'Dog', 'Burger', 'x']required_list=[(1 if i[0].isupper() else 0,len(i),i) for i in inputs]required_list.sort(reverse=True)print([k for i,j,k in required_list])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python