如何在Python中使用字符和数字对字符串进行排序?
我想把下面的事情分类如何在Python中使用字符和数字对字符串进行排序?,python,list,sorting,Python,List,Sorting,我想把下面的事情分类 l = ["125.13-ac35", "142.1532-afe354eqd", "125.13-abe319ej", "142.1523-d315aw"] 像这样使用Python l = ["125.13-abe319ej", "125.13-ac35", "142.1523-d315aw", "142.1532-af
l = ["125.13-ac35", "142.1532-afe354eqd", "125.13-abe319ej", "142.1523-d315aw"]
像这样使用Python
l = ["125.13-abe319ej", "125.13-ac35", "142.1523-d315aw", "142.1532-afe354eqd"]
有人建议我使用基数排序,但这并不是我想要的。
例如,要对这些内容进行排序,请执行以下列表
a = [15, 3216, 120, 1, 1000, 253]
应该这样分类
a = [1, 1000, 120, 15, 253, 3216]
有任何排序算法可以这样排序吗?您需要通过将内部元素转换为字符串来对列表进行排序
a = [15, 3216, 120, 1, 1000, 253]
a.sort(key=lambda x:str(x))
print(a)
输出
[1, 1000, 120, 15, 253, 3216]
我知道我不能在评论中说谢谢,但这是一个快速而好的回答。工作起来很有魅力,非常感谢你。谢谢你,汉克斯,你可以说你可以直接写
a.sort(key=str)
。不需要额外的lambda层。注释文本框显示“避免像“+1”或“谢谢”这样的注释,因为像“+1”或“谢谢”这样的注释不会添加任何内容。(也请参阅更多)副本是错误的。这个问题不是重复的。事实上,它要求的恰恰相反——如何避免按递增顺序排列数字。相反,它是一个复制品。