Python: ordenar por dígito máximo en el elemento

Dada una Lista de Elementos, ordenar por el dígito máximo del elemento presente en la Lista.

Entrada : test_list = [234, 92, 8, 721] 
Salida : [234, 721, 8, 92] 
Explicación : 4 < 7 < 8 < 9, ordenados por dígitos máximos.

Entrada : test_list = [92, 8, 721] 
Salida : [721, 8, 92] 
Explicación : 7 < 8 < 9, ordenados por dígitos máximos. 

Método #1: Usar max() + sort()

En esto, realizamos la tarea de ordenar en el lugar usando sort() y el elemento máximo se extrae usando max().

Python3

# Python3 code to demonstrate working of 
# Sort by Maximum digit in Element
# Using max() + sort()
  
def max_dig(ele):
      
    # getting maximum digit by magnitude
    return max(str(ele))
  
# initializing list
test_list = [234, 92, 15, 8, 721]
  
# printing original list
print("The original list is : " + str(test_list))
  
# calling sort fnc. to sort with key
test_list.sort(key = max_dig)
  
# printing result 
print("Sorted List : " + str(test_list))
Producción

The original list is : [234, 92, 15, 8, 721]
Sorted List : [234, 15, 721, 8, 92]

Método #2: Usar sorted() + lambda + max()

En esto, usamos sorted() para realizar una ordenación no in situ y evitar el uso de una función externa usando la función lambda para obtener el dígito máximo.

Python3

# Python3 code to demonstrate working of 
# Sort by Maximum digit in Element
# Using sorted() + lambda + max()
  
# initializing list
test_list = [234, 92, 15, 8, 721]
  
# printing original list
print("The original list is : " + str(test_list))
  
# lambda fnc. used to get maximum Element logic
res = sorted(test_list, key = lambda ele : max(str(ele)))
  
# printing result 
print("Sorted List " + str(res))
Producción

The original list is : [234, 92, 15, 8, 721]
Sorted List [234, 15, 721, 8, 92]

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 *