Мне нужно отсортировать список строк на основе значения с плавающей запятой в середине строки.
Я видел, как некоторые ответы получали ключ keys.sort(key=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']
Используйте sorted
/ sort
с аргументом key
:
sorted(list_of_msg, key=lambda x: float(x.split(';')[1].strip()))
Мы разделяем элементы в исходном списке на основе ';'
и берем второе разделение, которое передается в качестве аргумента key
.