Да, list.sort()
сорта вместо и возвращает None
, чтобы указать его является сам список, который был отсортирован. Функция sorted()
возвращает новый отсортированный список, оставляя исходный список без изменений.
Использование int
в качестве ключа:
sorted(key_s, key=int)
Это возвращает нового списка, отсортированного по числовому значению каждой строки, но оставляя тип значений самих изменений.
Без ключа строки отсортированы лексикографически вместо этого, сравнивая характер по характеру. Таким образом '9'
сортируется после'10'
, потому что символ '1'
доходит до '9'
в наборах символов, точно так же как 'a'
предшествует 'z'
.
Аргумент key
позволяет применять Schwartzian_transform, информируя алгоритм сортировки о том, что нужно сортировать. Каждое значение в списке сортируется в соответствии с key(value)
(так int(value)
здесь) вместо самого исходного значения.
Демо:
>>> key_s = ['115', '114', '117', '116', '111', '110', '113', '112', '68', '119', '118', '44', '45', '42', '43', '41', '76', '108', '109', '71', '107', '79', '13', '15', '14', '17', '16', '37']
>>> sorted(key_s, key=int)
['13', '14', '15', '16', '17', '37', '41', '42', '43', '44', '45', '68', '71', '76', '79', '107', '108', '109', '110', '111', '112', '113', '114', '115', '116', '117', '118', '119']
упорядоченные (Key_S, ключ = INT) - для получения более подробной информации [прочитайте документацию] (https://docs.python.org/2/library/functions.html#sorted) – AndreyT
'map (str, sorted (map (int, key_s)))'? – TheRandomGuy
@Dhruv: Вы пытаетесь выиграть награду за злоупотребление функциональной парадигмой? –