我有一个像这样的大文本文件:
train/1175-c/b0a5.bmp 45221
train/1175-c/b0a4.bmp 45220
train/1176-c/b0a4.bmp 45220
train/1176-c/b0a6.bmp 45222
train/1175-c/b0a1.bmp 45217
train/1173-c/b0a2.bmp 45218
train/1175-c/b0aa.bmp 45226
train/1172-c/b0a3.bmp 45219
train/1177-c/b0a4.bmp 45220
train/1177-c/b0a1.bmp 45217
train/1176-c/b0a1.bmp 45217
train/1178-c/b0a1.bmp 45217
train/1175-c/b0a8.bmp 45224
train/1175-c/b0a9.bmp 45225
train/1175-c/b0a7.bmp 45223
我想按照以下方式对其进行排序并保存新文件?基于每行中的最后一个int值进行排序。
train/1178-c/b0a1.bmp 45217
train/1177-c/b0a1.bmp 45217
train/1176-c/b0a1.bmp 45217
train/1175-c/b0a1.bmp 45217
train/1173-c/b0a2.bmp 45218
train/1172-c/b0a3.bmp 45219
train/1175-c/b0a4.bmp 45220
train/1176-c/b0a4.bmp 45220
train/1177-c/b0a4.bmp 45220
train/1175-c/b0a5.bmp 45221
train/1176-c/b0a6.bmp 45222
train/1175-c/b0a7.bmp 45223
train/1175-c/b0a8.bmp 45224
train/1175-c/b0a9.bmp 45225
train/1175-c/b0aa.bmp 45226
答案 0 :(得分:2)
编写一个函数并将其作为key
关键字参数传递给sorted
def trailing_digits(string):
return int(string.split()[-1])
iterable = '''train/1175-c/b0a5.bmp 45221
train/1175-c/b0a4.bmp 45220
train/1176-c/b0a4.bmp 45220
train/1176-c/b0a6.bmp 45222
train/1175-c/b0a1.bmp 45217
train/1173-c/b0a2.bmp 45218
train/1175-c/b0aa.bmp 45226
train/1172-c/b0a3.bmp 45219
train/1177-c/b0a4.bmp 45220
train/1177-c/b0a1.bmp 45217
train/1176-c/b0a1.bmp 45217
train/1178-c/b0a1.bmp 45217
train/1175-c/b0a8.bmp 45224
train/1175-c/b0a9.bmp 45225
train/1175-c/b0a7.bmp 45223'''.split('\n')
for x in sorted(iterable, key=trailing_digits):
print(x)