#python #string #sorting
#python #строка #сортировка
Вопрос:
У меня есть эта строка:
string = '9x3420aAbD8'
Как я могу превратить строку в:
'023489ADabx'
Какую функцию я бы использовал?
Ответ №1:
Вы можете просто использовать встроенную функцию sorted
для сортировки строки лексикографически. Он принимает итерацию, сортирует каждый элемент, а затем возвращает отсортированный список. Согласно документации:
sorted(iterable[, key][, reverse])
Возвращает новый отсортированный список из элементов в iterable.
Вы можете применить это следующим образом:
>>> ''.join(sorted(string))
'023489ADabx'
Since sorted
возвращает список, например, так:
>>> sorted(string)
['0', '2', '3', '4', '8', '9', 'A', 'D', 'a', 'b', 'x']
Просто соедините их вместе, чтобы создать нужную строку.
Комментарии:
1. Это лучший и единственный способ сделать это.
Ответ №2:
Вы можете использовать sorted()
функцию для сортировки строки, но это вернет список
sorted(string)
['0', '2', '3', '4', '8', '9', 'A', 'D', 'a', 'b', 'x']
чтобы превратить это обратно в строку, вам просто нужно присоединиться к ней, что обычно делается с помощью ''.join()
Итак, все вместе:
sorted_string = ''.join(sorted(string))