При необходимости для сравнения чисел, которые выглядят как: 12,3K, 1,84M и т.д. например:Сравните цифры в виде: 12,3K, 1,84M в питоне
a = 12,3K
b = 1,84M
if b > a :
print b
При необходимости для сравнения чисел, которые выглядят как: 12,3K, 1,84M и т.д. например:Сравните цифры в виде: 12,3K, 1,84M в питоне
a = 12,3K
b = 1,84M
if b > a :
print b
Вы должны использовать заменить для него:
a = ("12,3K", "1,84M")
numbers = {"K": 1000, "M": 1000000}
result = []
for value in a:
if value:
i = value[-1]
value = float(value[:-1].replace(',', '.')) * numbers[i]
result.append(int(value))
print max(result)
Вы можете добавить другие словари в словаря, и вы получите больше результатов.
Я рекомендовал бы функцию для преобразования a
и b
в соответствующее число, как это (и я бы сделал a
и b
строки:
def convert(num):
return num.replace(',','').replace('K','000').replace('M','000000')
a = '12,3K'
b = '1,84M'
if convert(b) > convert(a) :
print b
Я ценю вашу попытку помочь, на самом деле я получаю список из веб-скрепок в форме: ['12 .3K ',' 234 ',' 1.84M ',' 23 '], и я хочу сравнить это с другим списком в том же form –
Если значения строк, то re
модуль сделает легко заменить запятые ''
и K или M с 3 или 6 нулями. Затем оберните в int()
и сравните. Где/как вы получаете значения, которые вы сравниваете?
В основном я получаю их из веб-соскабливания, например: ['12 .3K ',' 123 ',' 1.34M ',' 34 '] –
, и я хочу сравнить их с другим списком в форме: ['10 .9K' , '123', '2.67M', '34'] –
следует a и b быть строками? – depperm
Вы означает '' k'' '' * 1000'' и с '' M''''' 1000000''? И используйте '' .'' вместо '', '' при определении чисел. Итак, '' a = 12.3 * 1000'' вместо '' 12,3K''? – MSeifert
Напишите функцию, которая принимает строку типа «12.3K» и преобразует ее в число 12300. Функция будет смотреть на последний символ строки и преобразовать ее в 1000 для K, 1000000 для M и т. Д. Она также может иметь для обмена запятыми для периодов, если числа уже находятся в этом формате. –