Tenga en cuenta que sorted(a)devolverá una lista ordenada, por lo que para las comparaciones de cadenas no es necesario join()(consulte las respuestas a continuación).
Skippy le Grand Gourou
Tenga en cuenta que ''.join(sorted(a, reverse=True, key=str.lower))se puede utilizar para realizar una ordenación sin distinción entre mayúsculas y minúsculas. Podría ser útil.
Superdooperhero
89
>>> a ='ZENOVW'>>> b = sorted(a)>>>print b
['E','N','O','V','W','Z']
sorteddevuelve una lista, por lo que puede convertirla en una cadena nuevamente usando join:
>>> c =''.join(b)
que une los elementos de bjunto con una cadena vacía ''entre cada elemento.
Oye, esa primera solución fue un poco útil para una tarea en la que tenía que encontrar una carta usando bisección. Sí, ya sé sobre la clase de cadena y el método find (), pero esto anula el propósito del ejercicio;)
runlevel0
9
Puedes usar reducir
>>> a ='ZENOVW'>>> reduce(lambda x,y: x+y, sorted(a))'ENOVWZ'
el código se puede usar para ordenar cadenas en orden alfabético sin usar ninguna función incorporada de python
k = input ("Ingrese cualquier cadena nuevamente")
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)
Bien hecho por tu primera respuesta. Solo considere una cadena de 1 millón de caracteres, su comando tuple () creará una enorme lista de opciones acumuladas que usa una cantidad innecesariamente grande de memoria.
tda
Convenido. Entonces, para mejorar la complejidad del espacio, la idea es trabajar con el iterable mismo, en lugar de convertirlo en una estructura de datos. Agradable. Gracias.
sorted(a)
devolverá una lista ordenada, por lo que para las comparaciones de cadenas no es necesariojoin()
(consulte las respuestas a continuación).''.join(sorted(a, reverse=True, key=str.lower))
se puede utilizar para realizar una ordenación sin distinción entre mayúsculas y minúsculas. Podría ser útil.sorted
devuelve una lista, por lo que puede convertirla en una cadena nuevamente usandojoin
:que une los elementos de
b
junto con una cadena vacía''
entre cada elemento.fuente
La solución Sorted () puede proporcionarle resultados inesperados con otras cadenas.
Lista de otras soluciones:
Ordenar letras y hacerlas distintas:
Ordena las letras y hazlas distintas mientras mantienes mayúsculas:
Ordenar letras y guardar duplicados:
Si desea deshacerse del espacio en el resultado, agregue la función strip () en cualquiera de los casos mencionados:
fuente
Puedes usar reducir
fuente
La función Python
sorted
devuelve el resultado basado en ASCII para la cadena.INCORRECTO : en el siguiente ejemplo,
e
yd
está detrásH
yW
debido a su valor ASCII.CORRECTO : para escribir la cadena ordenada sin cambiar el caso de la letra. Usa el código:
Si desea eliminar todos los signos de puntuación y números. Usa el código:
fuente
el código se puede usar para ordenar cadenas en orden alfabético sin usar ninguna función incorporada de python
k = input ("Ingrese cualquier cadena nuevamente")
fuente
Realmente me gustó la respuesta con la función reduce (). Aquí hay otra forma de ordenar la cadena usando acumular ().
ordenado (s) -> ['i', 'i', 'i', 'i', 'm', 'p', 'p', 's', 's', 's', 's' ]
tupla (acumular (ordenados) -> ('i', 'ii', 'iii', 'iiii', 'iiiim', 'iiiimp', 'iiiimpp', 'iiiimpps', 'iiiimppss', 'iiiimppsss ',' iiiimppssss ')
Estamos seleccionando el último índice (-1) de la tupla
fuente