为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

心有法竹 2023-01-04 16:16:54
输入:sort_words ['零','yeLLow','狗','汉堡','x']# 输出:['Burger', 'Dog', 'yeLLow', 'zero', 'x']输入:sort_words ['鱼','水','海绵宝宝','球']# 输出:['海绵宝宝', '水', '鱼', '球']输入:sort_words ['猪','青蛙','猫']# 输出:['猪', '猫', '青蛙']
查看完整描述

2 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

您可以使用内置sorted函数,但您需要提供一个函数来key应用您想要的排序逻辑。如果第一个字母大小写相同且字符串长度相同,则字符串列表中的项目相等。大写字母少于小写字母,长单词少于短单词。


def sort_key(string):

    return (string[0].islower(), -len(string))


sorted(['Pig', 'frog', 'Cat'], key=sort_key)

# output: ['Pig', 'Cat', 'frog']


查看完整回答
反对 回复 2023-01-04
?
九州编程

TA贡献1785条经验 获得超4个赞

干得好:


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


查看完整回答
反对 回复 2023-01-04
  • 2 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号