首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用python按递增顺序编写数字列表

如何使用python按递增顺序编写数字列表
EN

Stack Overflow用户
提问于 2018-04-30 07:57:08
回答 1查看 883关注 0票数 0

我有一份名单

代码语言:javascript
运行
复制
a1 = ['1', '5-10', '12', '18', '23', '100-110', '16-17', '20']

我要按递增顺序排列的元素列表如下

代码语言:javascript
运行
复制
a1 = ['1','5-10','12','16-17','18','20','23','100-110']

请任何人帮我安排一下

代码语言:javascript
运行
复制
case = ['1', '5-10', '12', '18', '23', '100-110', '16-17', '20']
case1 = [i.split('-', 1)[0] for i in case]
case1 = [int(x) for x in case1]

case1.sort()

打印后,case1输出为

代码语言:javascript
运行
复制
[1, 5, 12, 16, 18, 20, 23 ,100]

但我想要输出就像

代码语言:javascript
运行
复制
[1, 5-10, 12, 16-17, 18, 20, 23, 100-110]
EN

回答 1

Stack Overflow用户

发布于 2018-04-30 08:14:59

如果您确信每个list元素都应该是整数字符串或整数分隔的字符串组合,那么您可以尝试如下所示:

代码语言:javascript
运行
复制
a_dict = {int(v.split('-')[0]): v for v in a}
final_a = [a_dict[k] for k in sorted(a_dict)]
print final_a

会回来

“1”、“5-10”、“12”、“16-17”、“18”、“20”、“23”、“100-110”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50096250

复制
相关文章

相似问题

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