Dada una Lista, realice un reordenamiento para obtener elementos similares en secuencia.
Entrada : test_list = [4, 7, 5, 4, 1, 4, 1, 6, 7, 5]
Salida : [4, 4, 4, 7, 7, 5, 5, 1, 1, 6]
Explicación : Todos los elementos similares se asignan para ser consecutivos.Entrada : test_list = [4, 7, 5, 1, 4, 1, 6, 7, 5]
Salida : [4, 4, 7, 7, 5, 5, 1, 1, 6]
Explicación : Todos los elementos similares son asignado para ser consecutivo.
Método #1: Usando Counter() + loop + items()
En esto, realizamos la tarea de calcular la frecuencia usando Counter(), y loop y items() se usan para reordenar elementos de acuerdo con el conteo y las frecuencias de acceso, respectivamente.
Python3
# Python3 code to demonstrate working of # Reorder for consecutive elements # Using Counter() + loop + items() from collections import Counter # initializing list test_list = [4, 7, 5, 4, 1, 4, 1, 6, 7, 5] # printing original lists print("The original list is : " + str(test_list)) # getting frequency freqs = Counter(test_list) res = [] # reordering basis of frequency for val, cnt in freqs.items(): res.extend([val]*cnt) # printing result print("Reordered List : " + str(res))
Producción:
The original list is : [4, 7, 5, 4, 1, 4, 1, 6, 7, 5] Reordered List : [4, 4, 4, 7, 7, 5, 5, 1, 1, 6]
Método #2: Usando Counter() + elements()
En este, realizamos la tarea de reordenar las frecuencias contadas usando elements(), brindando una solución concisa.
Python3
# Python3 code to demonstrate working of # Reorder for consecutive elements # Using Counter() + elements() from collections import Counter # initializing list test_list = [4, 7, 5, 4, 1, 4, 1, 6, 7, 5] # printing original lists print("The original list is : " + str(test_list)) # reordering using elements() res = list(Counter(test_list).elements()) # printing result print("Reordered List : " + str(res))
Producción:
The original list is : [4, 7, 5, 4, 1, 4, 1, 6, 7, 5] Reordered List : [4, 4, 4, 7, 7, 5, 5, 1, 1, 6]
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