Python: números y alfabetos de strings de ordenación diferencial

Dada una String de Lista, Reordenar Lista, con Alfabetos Ordenados seguidos de Strings Ordenadas.

Entrada : test_list = [“1”, “G”, “10”, “L”, “9”, “K”, “4”] 
Salida : [‘G’, ‘K’, ‘L’, ‘1 ‘, ‘4’, ‘9’, ’10’] 
Explicación : Alfabetos ordenados, seguidos por dígitos ordenados.

Entrada : test_list = [“1”, “G”, “10”, “L”, “9”] 
Salida : [‘G’, ‘L’, ‘1’, ‘9’, ’10’] 
Explicación : Alfabetos ordenados, seguidos por dígitos ordenados. 
 

Método #1: Usar isnumeric() + loop

En esto, separamos los caracteres numéricos y alfabéticos, usando isnumeric(), y luego ordenamos en cada lista, luego realizamos la unión de ambas listas para obtener el resultado. Funciona con solo una string de números de 1 dígito.

Python3

# Python3 code to demonstrate working of
# Differential Sort String Numbers and Alphabets
# Using isnumeric() + loop
 
# initializing list
test_list = ["1", "G", "7", "L", "9", "M", "4"]
 
# printing original list
print("The original list is : " + str(test_list))
 
numerics = []
alphabets = []
for sub in test_list:
     
    # checking and inserting in respective container
    if sub.isnumeric():
        numerics.append(sub)
    else:
        alphabets.append(sub)
 
# attaching lists post sort
res = sorted(alphabets) + sorted(numerics)
 
# printing result
print("The Custom sorted result : " + str(res))
Producción

The original list is : ['1', 'G', '7', 'L', '9', 'M', '4']
The Custom sorted result : ['G', 'L', 'M', '1', '4', '7', '9']

Método #2: Usar sorted() + isnumeric()

Esta es una forma sencilla de resolver este problema, verifica los valores numéricos usando isnumeric, y sorted() se usa para realizar sort(). Convierte elementos a números enteros y pruebas, puede manejar números de más de 1 dígito. 

Python3

# Python3 code to demonstrate working of
# Differential Sort String Numbers and Alphabets
# Using sorted() + isnumeric()
 
# initializing list
test_list = ["100", "G", "74", "L", "98", "M", "4"]
 
# printing original list
print("The original list is : " + str(test_list))
 
# using int() to type convert to integer
# using sorted() to perform sort operation
res = sorted(test_list, key = lambda ele: (ele.isnumeric(), int(ele) if ele.isnumeric() else ele))
 
# printing result
print("The Custom sorted result : " + str(res))
Producción

The original list is : ['100', 'G', '74', 'L', '98', 'M', '4']
The Custom sorted result : ['G', 'L', 'M', '4', '74', '98', '100']

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *