Python: prueba si las filas tienen una frecuencia similar

En este artículo tenemos una Array dada, prueba si todas las filas tienen elementos similares.

Entrada : test_list = [[6, 4, 2, 7, 3], [7, 3, 6, 4, 2], [2, 4, 7, 3, 6]] 
Salida : Verdadero 
Explicación : Todas las listas tienen 2 , 3, 4, 6, 7.
Entrada : test_list = [[6, 4, 2, 7, 3], [7, 5, 6, 4, 2], [2, 4, 7, 3, 6]] 
Salida : Falso 
Explicación : la segunda lista tiene 5 en lugar de 3. 

Método n. ° 1: usar Counter() + comprensión de lista

En esto, calculamos el diccionario de frecuencia de los elementos usando Counter(), y comparamos con cada fila en Matrix, si verifican, se devuelve True.

Python3

# Python3 code to demonstrate working of 
# Test if Rows have Similar frequency
# Using Counter() + list comprehension
from collections import Counter
  
# initializing list
test_list = [[6, 4, 2, 7, 3], [7, 3, 6, 4, 2], [2, 4, 7, 3, 6]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# checking if all rows are similar 
res = all(dict(Counter(row)) == dict(Counter(test_list[0])) for row in test_list)
  
# printing result 
print("Are all rows similar : " + str(res))
Producción

La lista original es: [[6, 4, 2, 7, 3], [7, 3, 6, 4, 2], [2, 4, 7, 3, 6]]
Son todas las filas similares: Verdadero

Método n.º 2: usar la comprensión de listas + sorted() + all()

En esto, buscamos elementos similares usando sorted(), ordenando todos los elementos en formato ordenado.

Python3

# Python3 code to demonstrate working of 
# Test if Rows have Similar frequency
# Using list comprehension + sorted() + all()
  
# initializing list
test_list = [[6, 4, 2, 7, 3], [7, 3, 6, 4, 2], [2, 4, 7, 3, 6]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# checking if all rows are similar 
# ordering each row to test 
res = all(list(sorted(row)) == list(sorted(test_list[0])) for row in test_list)
  
# printing result 
print("Are all rows similar : " + str(res))
Producción

La lista original es: [[6, 4, 2, 7, 3], [7, 3, 6, 4, 2], [2, 4, 7, 3, 6]]
Son todas las filas similares: Verdadero

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 *