我有一份名单
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]
发布于 2018-04-30 08:14:59
如果您确信每个list元素都应该是整数字符串或整数分隔的字符串组合,那么您可以尝试如下所示:
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”
https://stackoverflow.com/questions/50096250
复制相似问题