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

2024-04-19 15:17:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张单子

a1 = ['1', '5-10', '12', '18', '23', '100-110', '16-17', '20']

我要这个元素列表按递增顺序排列 就像

a1 = ['1','5-10','12','16-17','18','20','23','100-110']

有人能帮我安排一下吗

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输出为

[1, 5, 12, 16, 18, 20, 23 ,100]

但我希望输出像

[1, 5-10, 12, 16-17, 18, 20, 23, 100-110]

Tags: in元素列表fora1sort单子int
1条回答
网友
1楼 · 发布于 2024-04-19 15:17:59

如果确定每个列表元素应该是整数字符串或由整数组成的破折号分隔的字符串,可以尝试以下操作:

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']

相关问题 更多 >