Подтвердить что ты не робот

Как отсортировать список строк строки python

Я пытаюсь отсортировать список строк, содержащих числа

a = ["1099.0","9049.0"]
a.sort()
a
['1099.0', '9049.0']

b = ["949.0","1099.0"]
b.sort()    

b
['1099.0', '949.0']

a
['1099.0', '9049.0']

Но список b сортируется, а не список a

4b9b3361

Ответ 1

Вы хотите сортировать на основе значений float (а не строковых значений), поэтому попробуйте:

>>> b = ["949.0","1099.0"]
>>> b.sort(key=float)
>>> b
['949.0', '1099.0']

Ответ 2

используйте lambda внутри сортировки, чтобы преобразовать их в float, а затем правильно отсортировать:

a = sorted(a, key=lambda x: float(x))

поэтому вы будете использовать их как строки, но отсортированные по значению, а не лексикографически

Ответ 3

Преобразуйте их в int или float или даже decimal (так как он имеет завершающие номера)

>>> b = [float(x) for x in b]
>>> b.sort()
>>> b
[949.0, 1099.0]

Ответ 4

Они оба отсортированы. "1" - до "9". Посмотрите здесь: Таблица Ascii