Dada una lista de tuplas, realice la ordenación en función del total de dígitos en la tupla.
Ejemplos:
Entrada : test_list = [(3, 4, 6, 723), (1, 2), (134, 234, 34)]
Salida : [(1, 2), (3, 4, 6, 723), (134 , 234, 34)]
Explicación : 2 < 6 < 8, ordenados por dígitos totales crecientes.
Entrada : test_list = [(1, 2), (134, 234, 34)]
Salida : [(1, 2), (134, 234, 34)]
Explicación : 2 < 8, ordenados por dígitos totales crecientes.
Método #1: Usar sort() + len() + sum()
En esto, obtenemos la suma de todas las longitudes de cada elemento en la tupla mediante la conversión de strings y len(). Entonces sort() se usa con key para resolver este problema.
Python3
# Python3 code to demonstrate working of # Sort Tuples by Total digits # Using sort() + len() + sum() def count_digs(tup): # gets total digits in tuples return sum([len(str(ele)) for ele in tup ]) # initializing list test_list = [(3, 4, 6, 723), (1, 2), (12345,), (134, 234, 34)] # printing original list print("The original list is : " + str(test_list)) # performing sort test_list.sort(key = count_digs) # printing result print("Sorted tuples : " + str(test_list))
The original list is : [(3, 4, 6, 723), (1, 2), (12345,), (134, 234, 34)] Sorted tuples : [(1, 2), (12345,), (3, 4, 6, 723), (134, 234, 34)]
Método #2: Usar sorted() + lambda + sum() + len()
En esto, realizamos la tarea de ordenar usando sorted(), y la función lambda realiza la tarea de calcular el total de dígitos en tuplas.
Python3
# Python3 code to demonstrate working of # Sort Tuples by Total digits # Using sorted() + lambda + sum() + len() # initializing list test_list = [(3, 4, 6, 723), (1, 2), (12345,), (134, 234, 34)] # printing original list print("The original list is : " + str(test_list)) # performing sort, lambda function provides logic res = sorted(test_list, key = lambda tup : sum([len(str(ele)) for ele in tup ])) # printing result print("Sorted tuples : " + str(res))
The original list is : [(3, 4, 6, 723), (1, 2), (12345,), (134, 234, 34)] Sorted tuples : [(1, 2), (12345,), (3, 4, 6, 723), (134, 234, 34)]
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