[英]how to write the list of numbers in increasing order using 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]
如果您確定每個列表元素應為整數字符串或由整數分隔的破折號字符串,則可以嘗試執行以下操作:
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']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.