首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Python字符串按前缀按字母顺序排序,并按后缀进行数字排序?

问如何将Python字符串按前缀按字母顺序排序,并按后缀进行数字排序?
EN

Stack Overflow用户
提问于 2022-11-02 05:37:11
回答 1查看 57关注 0票数 3

我需要对表格中的字符串列表进行排序:

代码语言:javascript
复制
["ccc_3.23", "b_0.00", "b_-1.10", "aa_-2.37", "aa_3.05", "aa_-2.11", "ccc_9.8"]

首先是前缀,然后是后缀,这样排序的列表是:

代码语言:javascript
复制
["aa_-2.37", "aa_-2.11", "aa_3.05", "b_-1.17", "b_0.00", "ccc_3.23", "ccc_9.8"]

前缀只包含标准英文字母,可以是任意长度的。另一方面,后缀总是有符号的浮点数,可能会有不同的数字。-1.3232、0.0和7.98都是有效后缀。

列表需要在不改变流程中的任何元素的情况下进行排序。我尝试过许多不同的方法,从网络,但似乎没有涵盖每一个边缘的情况。不幸的是,列表被格式化为- is,我不能对它做任何事情。

有什么办法可以让我这么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-02 05:41:40

您需要在排序中使用key

代码语言:javascript
复制
a = ["ccc_3.23", "b_0.00", "b_-1.10", "aa_-2.37", "aa_3.05", "aa_-2.11", "ccc_9.8"]
a.sort(key=lambda x: (x.split("_")[0], float(x.split("_")[1])))
a
# output : ['aa_-2.37', 'aa_-2.11', 'aa_3.05', 'b_-1.10', 'b_0.00', 'ccc_3.23', 'ccc_9.8']
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74284758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档