Вы можете просто сравнивать строки, если они отличаются только числом и числа имеют одинаковое количество цифр.Т.е.:
String_1 = 'The price is 15 euros'
String_2 = 'The price is 14 euros'
String_3 = 'The price is 37 EUR'
Будет естественно отсортировано как String_3
> String_1
> String_2
Но НЕ будет работать для:
String_4 = 'The price is 114 euros'
itимеет 3 цифры вместо 2, и это будет String_4
<<code>String_3, таким образом
Итак, тем лучше, если вы можете извлечь число из строки, как показано ниже:
import re
def get_price(s):
m = re.match("The price is ([0-9]*)", s)
if m:
return = int(m.group(1))
return 0
Теперь вы можете сравнивать цены как целое число:
price = get_price(String_1)
if price > 14:
print ("Okay!")
. . .
if get_price(String_1) > 14:
print ("Okay!")
([0-9]*)
- это группа захвата регулярного выражения, все определенные в круглых скобках будут возвращены в методе group(1)
объекта совпадения Python.Вы можете расширить это простое регулярное выражение [0-9]*
для своих нужд.
Если у вас есть список строк:
string_list = [String_1, String_2, String_3, String_4]
for s in string_list:
if get_price(s) > 14:
print ("'{}' is okay!".format(s))