Python: ordenar por un número de dígitos particular en los elementos

Dada una lista de elementos, ordenar por dígito K en cada elemento.

Ejemplos:

Entrada : test_list = [4322, 2122, 123, 1344], K = 2 
Salida : [1344, 123, 4322, 2122] 
Explicación : 0 < 1 < 2 < 3, ordenados por recuento de 2 en cada elemento.

Entrada : test_list = [4322, 2122, 1344], K = 2 
Salida : [1344, 4322, 2122] 
Explicación : 0 < 2 < 3, ordenados por recuento de 2 en cada elemento. 

Método n.º 1: usar la comprensión de listas + str() + count()

En esto, realizamos la tarea de ordenar usando sort(), y la tarea de encontrar la frecuencia se realiza usando count().

Python3

# Python3 code to demonstrate working of 
# Sort by digit count in elements
# Using list comprehension + count() + str()
  
def count_dig(ele):
      
    # returning digit count
    return str(ele).count(str(K))
  
# initializing list
test_list = [4322, 2122, 123, 1344]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K 
K = 2
  
# calling external sort
test_list.sort(key = count_dig)
  
# printing result 
print("Sorted list : " + str(test_list))
Producción

The original list is : [4322, 2122, 123, 1344]
Sorted list : [1344, 123, 4322, 2122]

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

En esto, realizamos la tarea de realizar la ordenación usando sorted(), y usamos la función lambda para obtener la lógica de ordenación en lugar de la función externa.

Python3

# Python3 code to demonstrate working of 
# Sort by digit count in elements
# Using sorted() + str() + count() + lambda
  
# initializing list
test_list = [4322, 2122, 123, 1344]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K 
K = 2
  
# sorting using sorted()
# not inplace sort.
res = sorted(test_list, key = lambda ele : str(ele).count(str(K)))
  
# printing result 
print("Sorted list : " + str(res))
Producción

The original list is : [4322, 2122, 123, 1344]
Sorted list : [1344, 123, 4322, 2122]

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 *