簡體   English   中英

如何使用python以遞增順序寫數字列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM