Python – Reordenar para elementos consecutivos

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

Deja una respuesta

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