Python: clasificación numérica en la lista de strings de pares mixtos

A veces, mientras trabajamos con registros de datos, podemos tener un problema en el que recibimos datos en un formato personalizado y necesitamos realizar una ordenación. Podemos recibir tanto el nombre de la persona como la puntuación separada por espacios y solicitar la clasificación de mejor a peor. Vamos a discutir una forma en que este problema en particular puede ser resuelto.

Método n.º 1: Usar split() + sort()la función de tecla +
La combinación de las funcionalidades anteriores se puede usar para realizar esta tarea. En esto, realizamos una clasificación usando una función externa en la que dividimos la string y extraemos la parte numérica.

# Python3 code to demonstrate 
# Numeric Sort in Mixed Pair String List
# using split() + sort() + key function
  
# helper function 
def helper_func(ele):
        name, val = ele.split()
        return int(val)
  
# Initializing list
test_list = ["Manjeet 5", "Akshat 7", "Akash 6", "Nikhil 10"]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Numeric Sort in Mixed Pair String List
# using split() + sort() + key function
test_list.sort(key = helper_func, reverse = True)
      
# printing result 
print ("The reverse sorted numerics are : " + str(test_list))
Producción :

The original list is : ['Manjeet 5', 'Akshat 7', 'Akash 6', 'Nikhil 10']
The reverse sorted numerics are : ['Nikhil 10', 'Akshat 7', 'Akash 6', 'Manjeet 5']

Método #2: Usosplit() + lambda + sorted()
La combinación de los métodos anteriores se puede utilizar para realizar esta tarea. En esto, realizamos la división en números como se indicó anteriormente. La diferencia es que es un trazador de líneas y utiliza la función lambda para funcionar.

# Python3 code to demonstrate 
# Numeric Sort in Mixed Pair String List
# using split() + sorted() + lambda
  
# Initializing list
test_list = ["Manjeet 5", "Akshat 7", "Akash 6", "Nikhil 10"]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Numeric Sort in Mixed Pair String List
# using split() + sorted() + lambda
res = sorted(test_list, reverse = True, key = lambda ele: int(ele.split()[1]))
  
# printing result 
print ("The reverse sorted numerics are : " + str(res))
Producción :

The original list is : ['Manjeet 5', 'Akshat 7', 'Akash 6', 'Nikhil 10']
The reverse sorted numerics are : ['Nikhil 10', 'Akshat 7', 'Akash 6', 'Manjeet 5']

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 *