python - 首先根据长度对字符串元素列表进行排序,然后根据字母顺序对具有匹配长度的元素进行排序
问题描述
再会 !!
请求您帮助解决我目前面临的问题。我有一个名为 username 的列表,如下所示:
用户名 = ['Paul', 'Polish', 'poloski', 'melind', 'Melinda', 'MeRind','arabic','arabia']
a)我想根据长度/排序的降序对这个列表进行排序 b)对于长度相同的元素,我想考虑组成元素的每个字母对它们进行排序,就像它在 a字典(例如“阿拉伯”之前的“阿拉伯”)
为了更清楚,我的目标是创建最终修改后的列表,如下所示:
['Melinda','poloski','arabia','arabic','melind','MeRind','Polish','Paul')
感谢您对此的帮助。
解决方案
sorted
可以采用一个返回元组作为键的函数,每个元组的第一个元素将用于排序,然后在发生冲突时使用第二个元素,依此类推。
按第一个长度排序,然后按字母顺序(忽略大小写)
sorted(username, key=lambda u: (len(u), u.lower()))
推荐阅读
- sql-server - UPDATE > SET 列到基于另一个表 SQL Server 的多个值
- confluent-kafka-python - confluent-kafka-python 中的消费者偏移量
- visual-studio-code - 无法启动 VS Code 服务器
- grails - Grails 4 - 邮件插件:IllegalArgumentException:找不到邮件正文....它在插件中吗?
- powershell - Win Powershell 获取本地活跃用户列表
- python - 在 Django 中,如何获取存储在配置文件模块中的特定用户数据
- mysql - Bash mysql没有被执行
- sim800 - PIC16F877A + 模块 SIM800L
- python - 无法单击 Python Selenium 上的按钮
- python-3.8 - 在输出中只显示无,而不是将数值更改为大写字母