Python – Asignar frecuencia a las tuplas

Dada la lista de tuplas, asigne frecuencia a cada tupla en la lista.

Entrada : test_list = [(6, 5, 8), (2, 7), (6, 5, 8), (9, ), (2, 7)] 
Salida : [(6, 5, 8, 2) , (2, 7, 2), (9, 1)] 
Explicación : (2, 7) ocurre 2 veces, por lo tanto, 2 se agrega en tupla.
Entrada : test_list = [(2, 7), (2, 7), (6, 5, 8), (9, ), (2, 7)] 
Salida : [(6, 5, 8, 1), ( 2, 7, 3), (9, 1)] 
Explicación : (2, 7) ocurre 3 veces, por lo tanto, 3 se agrega en tupla. 
 

Método #1: Usar Counter() + items() + * operador + comprensión de lista

En esto, extraemos la frecuencia usando Counter(), obtenemos números de frecuencia usando items(), el operador * se usa para desempaquetar elementos y la comprensión de lista se usa para asignar esto a todos los elementos en la lista de tuplas.

Python3

# Python3 code to demonstrate working of
# Assign Frequency to Tuples
# Using Counter() + items() + * operator + list comprehension
from collections import Counter
 
# initializing list
test_list = [(6, 5, 8), (2, 7), (6, 5, 8), (6, 5, 8), (9, ), (2, 7)]
 
# printing original list
print("The original list is : " + str(test_list))
 
# one-liner to solve problem
# assign Frequency as last element of tuple
res = [(*key, val) for key, val in Counter(test_list).items()]
 
# printing results
print("Frequency Tuple list : " + str(res))
Producción

The original list is : [(6, 5, 8), (2, 7), (6, 5, 8), (6, 5, 8), (9, ), (2, 7)]
Frequency Tuple list : [(6, 5, 8, 3), (2, 7, 2), (9, 1)]

Método #2: Usar most_common() + Counter() + * operador + comprensión de lista

Esto es similar al método anterior, solo que most_common() realiza la operación de clasificación en la lista, lo cual no es necesario.

Python3

# Python3 code to demonstrate working of
# Assign Frequency to Tuples
# Using most_common() + Counter() + * operator + list comprehension
from collections import Counter
 
# initializing list
test_list = [(6, 5, 8), (2, 7), (6, 5, 8), (6, 5, 8), (9, ), (2, 7)]
 
# printing original list
print("The original list is : " + str(test_list))
 
# most_common performs sort on arg. list
# assign Frequency as last element of tuple
res = [(*key, val) for key, val in Counter(test_list).most_common()]
 
# printing results
print("Frequency Tuple list : " + str(res))
Producción

The original list is : [(6, 5, 8), (2, 7), (6, 5, 8), (6, 5, 8), (9, ), (2, 7)]
Frequency Tuple list : [(6, 5, 8, 3), (2, 7, 2), (9, 1)]

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 *