我有以下列表:
['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? 此外,我已经尝试了自然键的方法,但它对我不起作用。
发布于 2020-10-15 04:33:36
将其转换为int:
sorted(listName, key=lambda x: int(x.split('_')[0][2:]))https://stackoverflow.com/questions/64361068
复制相似问题