Rya*_*yan 0 python sorting list unordered
我想对以下形式的列表进行排序:
['1000-1005', '6767-8787', '88-5607', '600-607', '909-950']
通过“-”符号之前的整数值,并在排序后存储原始索引,所以像这样:
[(2, '88-5607'), (3, '600-607'), (4, '909-950'), (0, '1000-1005'), (1, '6767-8787')]
其中输出列表中的元组包含原始索引位置,后跟排序值
是否有捷径可寻?
如果我想按第一个数字排序而不保存原始索引,则可以这样做:
sorted(list, key=lambda x: int(x.split('-')[0]))
如果我想在提取第一个整数值后保存原始索引,则可以这样做:
sorted(enumerate(list), key=lambda i: i[1])
但组合这些方法是行不通的,因为它们都占用了关键函数定义。
尝试:
res = sorted(enumerate(['1000-1005', '6767-8787', '88-5607', '600-607', '909-950']),
key=lambda x: int(x[1].split('-')[0]))
print(res)
Run Code Online (Sandbox Code Playgroud)
印刷:
res = sorted(enumerate(['1000-1005', '6767-8787', '88-5607', '600-607', '909-950']),
key=lambda x: int(x[1].split('-')[0]))
print(res)
Run Code Online (Sandbox Code Playgroud)