我的清单是这样的:
10.987|first sentence 13.87|second sentence 9.098|third sentence
如果我做类似的事情:
for x in my_list: sorted(my_list, reverse=True)
从逻辑上我得到:
9.098|third sentence 13.87|second sentence 10.987|first sentence
这是因为它没有被解释为数字,但是我无法将整个字符串转换为浮点数。我想要的是第一部分的数字排序:
13.87|second sentence 10.987|first sentence 9.098|third sentence
我尝试使用itemgetter,但似乎找不到我想要的东西。用bash可以很容易地解决
sort -k
在python中有等效的工具吗?
这是一种方法。
lst = ['10.987|first sentence', '13.87|second sentence', '9.098|third sentence'] res = sorted(lst, key=lambda x: -float(x.split('|')[0]))
结果
['13.87|second sentence', '10.987|first sentence', '9.098|third sentence']
说明
sorted
key
lambda
float
reverse=True