如何对中间有浮点数的字符串列表进行排序?

问题描述 投票:0回答:1

我需要根据字符串中间的浮点值对字符串列表进行排序。

我已经看到一些答案得到一个关键的keys.sort(key=float),但在这些答案,他们只有列表中的浮点数。在这种情况下,我需要将该字符串转换为float并根据该值对其进行排序。最后我需要整个字符串。

list_of_msg = []
msg1 = "buy.apple<100; 21.15; Jonh>"
msg2 = "buy.apple<100; 20.00; Jane>"
msg3 = "buy.apple<50; 20.10; Anne>"
list_of_msg.append(msg1)
list_of_msg.append(msg2)
list_of_msg.append(msg3)
# sort method goes here
print(list_of_msg)

预计这将根据值21.15,20.00,20.10进行排序

 ['buy.apple<100; 20.00; Jane>', 'buy.apple<50; 20.10; Anne>', 
 'buy.apple<100; 21.15; Jonh']
python string sorting floating-point double
1个回答
3
投票

使用sorted / sortkey参数:

sorted(list_of_msg, key=lambda x: float(x.split(';')[1].strip()))

我们基于';'将原始列表中的元素拆分,并将第二个拆分作为key参数传递。

© www.soinside.com 2019 - 2024. All rights reserved.