首页 > 解决方案 > 首先根据长度对字符串元素列表进行排序,然后根据字母顺序对具有匹配长度的元素进行排序

问题描述

再会 !!

请求您帮助解决我目前面临的问题。我有一个名为 username 的列表,如下所示:

用户名 = ['Paul', 'Polish', 'poloski', 'melind', 'Melinda', 'MeRind','arabic','arabia']

a)我想根据长度/排序的降序对这个列表进行排序 b)对于长度相同的元素,我想考虑组成元素的每个字母对它们进行排序,就像它在 a字典(例如“阿拉伯”之前的“阿拉伯”)

为了更清楚,我的目标是创建最终修改后的列表,如下所示:

['Melinda','poloski','arabia','arabic','melind','MeRind','Polish','Paul')

感谢您对此的帮助。

标签: pythonpandas

解决方案


sorted可以采用一个返回元组作为键的函数,每个元组的第一个元素将用于排序,然后在发生冲突时使用第二个元素,依此类推。

按第一个长度排序,然后按字母顺序(忽略大小写)

sorted(username, key=lambda u: (len(u), u.lower()))

推荐阅读