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))
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))
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