簡體   English   中英

如何按兩個值之間的整數對列表進行排序?

[英]How to sort a list by integer between two values?

我有以下清單:

['RC103_', 'RC109_', 'RC114_', 'RC115_', 'RC111_', 'RC100_', 'RC117_', 'RC104_', 'RC122_', 'RC120_', 'RC101_', 'RC121_', 'RC125_', 'RC116_', 'RC118_', 'RC119_', 'RC102_', 'RC129_', 'RC126_', 'RC12_4']

如果我嘗試對此列表進行排序,則會得到以下輸出:

   ['RC100_', 'RC101_', 'RC102_', 'RC103_', 'RC104_', 'RC109_', 'RC111_', 'RC114_', 'RC115_', 'RC116_', 'RC117_', 'RC118_', 'RC119_', 'RC120_', 'RC121_', 'RC122_', 'RC125_', 'RC126_', 'RC129_', 'RC12_4']

如何對這個列表進行排序,使 RC12_4 位於頂部? 說清楚,我想要這個:

['RC12_4', 'RC100_', 'RC101_', 'RC102_', 'RC103_', 'RC104_', 'RC109_', 'RC111_', 'RC114_', 'RC115_', 'RC116_', 'RC117_', 'RC118_', 'RC119_', 'RC120_', 'RC121_', 'RC122_', 'RC125_', 'RC126_', 'RC129_']

我想要做的是按“RC”和下划線之間的值排序。 我知道要排序,例如,由 '_' 創建的第一個組是使用:

sorted(listName, key=lambda x: x.split('_')[0])

Is there a way to modify this script so that it sorts by the first item after RC and before the underscore? Or is there an easier way? 

我也嘗試過自然鍵方法,但它對我不起作用。

將其轉換為int:

sorted(listName, key=lambda x: int(x.split('_')[0][2:]))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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