对整数字符串进行排序并保存原始索引

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])

但组合这些方法是行不通的,因为它们都占用了关键函数定义。

I'm*_*hdi 5

尝试:

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)