Python – Ordenar tuplas por dígitos totales

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))
Producción

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))
Producción

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

Deja una respuesta

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