Dada una lista que contiene ambos valores alfanuméricos, escriba un programa Python para ordenar la lista dada de tal manera que los valores alfabéticos siempre vengan después de los valores numéricos.
Ejemplos:
Input : ['k', 5, 'e', 3, 'g', 7, 0, 't'] Output : [0, 3, 5, 7, 'e', 'g', 'k', 't'] Input : [1, 'c', 3, 2, 'a', 'b'] Output : [1, 2, 3, 'a', 'b', 'c']
Enfoque 1: Usar el método sort()
Para usar el método Python, primero sort()
debemos convertir todos los valores de la lista al tipo str . Ahora hay dos métodos para convertir valores en strings.
- Método #1: Comprensión de listas
La comprensión de listas de Python se puede usar simplemente para convertir cada elemento de la lista en un tipo de string. Lo ordenamos y dado que todos los valores ahora son de tipo str, cambiamos la lista final para volver a su forma original.# Python3 program to Sort list
# containing alpha and numeric values
def
sort(lst):
lst
=
[
str
(i)
for
i
in
lst]
lst.sort()
lst
=
[
int
(i)
if
i.isdigit()
else
i
for
i
in
lst ]
return
lst
# Driver code
lst
=
[
'k'
,
5
,
'e'
,
3
,
'g'
,
7
,
0
,
't'
]
print
(sort(lst))
Producción:[0, 3, 5, 7, 'e', 'g', 'k', 't']
- Método #2: Usar la función de tecla
La función clave sirve como clave para la comparación de clasificación, que es igual a str en nuestro caso.
# Python3 program to Sort list
# containing alpha and numeric values
def
sort(lst):
lst.sort(key
=
str
)
return
lst
# Driver code
lst
=
[
'k'
,
5
,
'e'
,
3
,
'g'
,
7
,
0
,
't'
]
print
(sort(lst))
Producción:[0, 3, 5, 7, 'e', 'g', 'k', 't']
Enfoque 2: ordenado()
Alternativamente, también puede usar la función integrada de Python sorted() para el mismo propósito. La diferencia más simple entre sort() y sorted() es: sort() no devuelve ningún valor, mientras que sorted() devuelve una lista iterable. Ahora hay nuevamente dos formas de usar sorted() .
- Método #1: Usando la función de tecla
# Python3 program to Sort list
# containing alpha and numeric values
def
sort(lst):
return
sorted
(lst, key
=
str
)
# Driver code
lst
=
[
'k'
,
5
,
'e'
,
3
,
'g'
,
7
,
0
,
't'
]
print
(sort(lst))
Producción:[0, 3, 5, 7, 'e', 'g', 'k', 't']
- Método #2: lambda
# Python3 program to Sort list
# containing alpha and numeric values
def
sort(lst):
return
sorted
(lst, key
=
lambda
x: (
isinstance
(x,
str
), x))
# Driver code
lst
=
[
'k'
,
5
,
'e'
,
3
,
'g'
,
7
,
0
,
't'
]
print
(sort(lst))
Producción:[0, 3, 5, 7, 'e', 'g', 'k', 't']
Publicación traducida automáticamente
Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA