Observe que sorted(a)retornará uma lista classificada, portanto, para comparações de strings, você não precisa join()(consulte a resposta abaixo).
Skippy le Grand Gourou
Observe que ''.join(sorted(a, reverse=True, key=str.lower))pode ser usado para executar uma classificação sem distinção entre maiúsculas e minúsculas. Pode ser útil.
Superdooperhero
89
>>> a ='ZENOVW'>>> b = sorted(a)>>>print b
['E','N','O','V','W','Z']
sortedretorna uma lista, para que você possa transformá-la em uma string novamente usando join:
>>> c =''.join(b)
que une os itens bcom uma sequência vazia ''entre cada item.
Ei, essa primeira solução foi meio útil para um trabalho de casa em que eu tive que encontrar uma carta usando a bissecção. Sim, eu já sei sobre a classe string e o método find (), mas isso vai contra o propósito do exercício;)
runlevel0
9
Você pode usar reduzir
>>> a ='ZENOVW'>>> reduce(lambda x,y: x+y, sorted(a))'ENOVWZ'
o código pode ser usado para classificar as strings em ordem alfabética sem usar nenhuma função embutida do python
k = entrada ("Insira qualquer sequência novamente")
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)
Bem feito para sua primeira resposta. Apenas considere uma sequência de 1 milhão de caracteres, seu comando tuple () criará uma enorme lista de opções acumuladas que usam uma quantidade desnecessariamente grande de memória.
tda
Acordado. Portanto, para melhorar a complexidade do espaço, a idéia é trabalhar com o iterável, com a intenção de convertê-lo em uma estrutura de dados. Agradável. Obrigado.
sorted(a)
retornará uma lista classificada, portanto, para comparações de strings, você não precisajoin()
(consulte a resposta abaixo).''.join(sorted(a, reverse=True, key=str.lower))
pode ser usado para executar uma classificação sem distinção entre maiúsculas e minúsculas. Pode ser útil.sorted
retorna uma lista, para que você possa transformá-la em uma string novamente usandojoin
:que une os itens
b
com uma sequência vazia''
entre cada item.fonte
A solução Sorted () pode fornecer resultados inesperados com outras strings.
Lista de outras soluções:
Classifique as letras e faça-as distintas:
Classifique as letras e as diferencie, mantendo as letras maiúsculas:
Classifique as letras e mantenha as duplicatas:
Se você quiser se livrar do espaço no resultado, adicione a função strip () em qualquer um dos casos mencionados:
fonte
Você pode usar reduzir
fonte
A função Python
sorted
retorna o resultado baseado em ASCII para a string.INCORRETO : No exemplo abaixo,
e
ed
é por trásH
eW
devido é de valor ASCII.CORRETO : Para escrever a sequência classificada sem alterar a caixa das letras. Use o código:
Se você deseja remover toda a pontuação e números. Use o código:
fonte
o código pode ser usado para classificar as strings em ordem alfabética sem usar nenhuma função embutida do python
k = entrada ("Insira qualquer sequência novamente")
fonte
Gostei muito da resposta com a função reduzir (). Aqui está outra maneira de classificar a string usando acumulate ().
classificado (s) -> ['i', 'i', 'i', 'i', 'm', 'p', 'p', 's', 's', 's', 's' ]
tupla (acumular (classificado (s)) -> ('i', 'ii', 'iii', 'iiii', 'iiiim', 'iiiimp', 'iiiimpp', 'iiiimpps', 'iiiimppss', 'iiiimppsss ',' iiiimppssss ')
Estamos selecionando o último índice (-1) da tupla
fonte