6 ответов:
>>> a = 'ZENOVW' >>> b = sorted(a) >>> print b ['E', 'N', 'O', 'V', 'W', 'Z']
sortedвозвращает список, так что вы можете сделать его строкой снова с помощьюjoin:>>> c = ''.join(b)который присоединяется к элементам
bвместе с пустой строкой''между каждым пунктом.>>> print c 'ENOVWZ'
Sorted () решение может дать вам некоторые неожиданные результаты с другими строками.
список других решений:
Сортировать буквы и сделать их различными:
>>> s = "Bubble Bobble" >>> ''.join(sorted(set(s.lower()))) ' belou'Сортировать буквы и сделать их различными, сохраняя при этом шапки:
>>> s = "Bubble Bobble" >>> ''.join(sorted(set(s))) ' Bbelou'сортировать письма и хранить дубликаты:
>>> s = "Bubble Bobble" >>> ''.join(sorted(s)) ' BBbbbbeellou'если вы хотите избавиться от места в результате, добавьте функцию strip () в любом из упомянутых случаев:
>>> s = "Bubble Bobble" >>> ''.join(sorted(set(s.lower()))).strip() 'belou'
код можно использовать для сортировки строк в алфавитном порядке без использования какой-либо встроенной функции python
k = input ("введите любую строку еще раз")
li = [] x = len(k) for i in range (0,x): li.append(k[i]) print("List is : ",li) for i in range(0,x): for j in range(0,x): if li[i]<li[j]: temp = li[i] li[i]=li[j] li[j]=temp j="" for i in range(0,x): j = j+li[i] print("After sorting String is : ",j)
очень понравился ответ с функцией reduce (). Вот еще один способ сортировки строки с помощью accumulate ().
from itertools import accumulate s = 'mississippi' print(tuple(accumulate(sorted(s)))[-1])отсортированный(с) -> ['Я', 'Я', 'Я', 'Я', 'м', 'п', 'р', 'ы', 'ы', 'ы', 'ы']
кортеж (накапливать (сортировать (ы)) - > ('i', 'ii', 'iii', 'iiii', 'iiiimp', 'iiiimp', 'iiiimpp', 'iiiimpps', 'iiiimppss', 'iiiimppsss')
мы выбираем последний индекс (-1) кортежа
Comments