首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据两个值之间的整数对列表进行排序?

如何根据两个值之间的整数对列表进行排序?
EN

Stack Overflow用户
提问于 2020-10-15 04:30:20
回答 1查看 35关注 0票数 1

我有以下列表:

代码语言:javascript
复制
['RC103_', 'RC109_', 'RC114_', 'RC115_', 'RC111_', 'RC100_', 'RC117_', 'RC104_', 'RC122_', 'RC120_', 'RC101_', 'RC121_', 'RC125_', 'RC116_', 'RC118_', 'RC119_', 'RC102_', 'RC129_', 'RC126_', 'RC12_4']

如果我尝试对此列表进行排序,则会得到以下输出:

代码语言:javascript
复制
   ['RC100_', 'RC101_', 'RC102_', 'RC103_', 'RC104_', 'RC109_', 'RC111_', 'RC114_', 'RC115_', 'RC116_', 'RC117_', 'RC118_', 'RC119_', 'RC120_', 'RC121_', 'RC122_', 'RC125_', 'RC126_', 'RC129_', 'RC12_4']

如何对此列表进行排序,使RC12_4位于顶部?需要说明的是,我想要这样:

代码语言:javascript
复制
['RC12_4', 'RC100_', 'RC101_', 'RC102_', 'RC103_', 'RC104_', 'RC109_', 'RC111_', 'RC114_', 'RC115_', 'RC116_', 'RC117_', 'RC118_', 'RC119_', 'RC120_', 'RC121_', 'RC122_', 'RC125_', 'RC126_', 'RC129_']

我想做的是根据'RC‘和下划线之间的值进行排序。例如,我知道要按“_”创建的第一个组进行排序,可以使用:

代码语言:javascript
复制
sorted(listName, key=lambda x: x.split('_')[0])

Is there a way to modify this script so that it sorts by the first item after RC and before the underscore? Or is there an easier way? 

此外,我已经尝试了自然键的方法,但它对我不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-15 04:33:36

将其转换为int:

代码语言:javascript
复制
sorted(listName, key=lambda x: int(x.split('_')[0][2:]))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64361068

复制
相关文章

相似问题

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