Dada una array de strings, ordenar por datos totales, es decir, caracteres totales en cada fila.
Entrada : test_list = [[“Gfg”, “is”, “Best”], [“Geeksforgeeks”, “Best”], [“ILvGFG”]]
Salida : [[‘ILvGFG’], [‘Gfg’, ‘ is’, ‘Best’], [‘Geeksforgeeks’, ‘Best’]]
Explicación : 6 < 11 < 17 caracteres en total respectivamente después de ordenar.Entrada : test_list = [[“Geeksforgeeks”, “Best”], [“ILvGFG”]]
Salida : [[‘ILvGFG’], [‘Geeksforgeeks’, ‘Best’]]
Explicación : 6 < 17 caracteres en total respectivamente después de ordenar .
Método #1: Usar sort() + len() + sum()
En esto, realizamos la tarea de ordenar usando sort(), y la tarea de obtener el total de caracteres se realiza usando len() y sum().
Python3
# Python3 code to demonstrate working of # Sort Matrix by total characters # Using sort() + len() + sum() def total_chars(row): # getting total characters return sum([len(sub) for sub in row]) # initializing list test_list = [["Gfg", "is", "Best"], ["Geeksforgeeks", "Best"], ["GFg", "4", "good"], ["ILvGFG"]] # printing original list print("The original list is : " + str(test_list)) # calling utility fnc test_list.sort(key=total_chars) # printing result print("Sorted results : " + str(test_list))
Producción:
La lista original es: [[‘Gfg’, ‘is’, ‘Best’], [‘Geeksforgeeks’, ‘Best’], [‘GFg’, ‘4’, ‘good’], [‘ILvGFG’]]
Resultados ordenados: [[‘ILvGFG’], [‘GFg’, ‘4’, ‘good’], [‘Gfg’, ‘is’, ‘Best’], [‘Geeksforgeeks’, ‘Best’]]
Método #2: Usar sorted() + lambda
En esto, sorted() se usa para obtener el resultado ordenado y la función lambda se usa en lugar de la función externa para obtener la lógica de clasificación de strings.
Python3
# Python3 code to demonstrate working of # Sort Matrix by total characters # Using sorted() + lambda # initializing list test_list = [["Gfg", "is", "Best"], ["Geeksforgeeks", "Best"], ["GFg", "4", "good"], ["ILvGFG"]] # printing original list print("The original list is : " + str(test_list)) # sorted() gives sorted result # lambda function providing logic res = sorted(test_list, key = lambda row : sum([len(sub) for sub in row])) # printing result print("Sorted results : " + str(res))
Producción:
La lista original es: [[‘Gfg’, ‘is’, ‘Best’], [‘Geeksforgeeks’, ‘Best’], [‘GFg’, ‘4’, ‘good’], [‘ILvGFG’]]
Resultados ordenados: [[‘ILvGFG’], [‘GFg’, ‘4’, ‘good’], [‘Gfg’, ‘is’, ‘Best’], [‘Geeksforgeeks’, ‘Best’]]
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