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))
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))
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