A veces, mientras trabajamos con datos, podemos tener un problema en el que recibimos el par de elementos duales y tenemos la intención de encontrar pares de elementos similares y su frecuencia. Este tipo de datos suele ser útil en los dominios de datos. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: usar Counter() + map() + sorted() + items()
La combinación de las funciones anteriores se puede usar para lograr esta tarea en particular. En esto, primero encontramos la frecuencia usando Counter y luego la vinculamos en una tupla usando map(). sorted() realiza la tarea de ordenar antes de usar el método anterior.
Python3
# Python3 code to demonstrate # Count Similar pair in dual list # using Counter() + map() + sorted() + items() from collections import Counter # initializing list test_list = [[1, 2], [2, 1], [3, 4], [4, 3], [5, 4]] # printing original list print ("The original list is : " + str(test_list)) # Count Similar pair in dual list # using Counter() + map() + sorted() + items() temp = [sorted(ele) for ele in test_list] res = [(i, j, k) for (i, j), k in Counter(map(tuple, temp)).items()] # printing result print ("The dual list similarity counts : " + str(res))
The original list is : [[1, 2], [2, 1], [3, 4], [4, 3], [5, 4]] The dual list similarity counts : [(1, 2, 2), (4, 5, 1), (3, 4, 2)]
Método #2: Usando sum() + comprensión de listas + groupby() + sorted()
En este método, la tarea de contar se realiza usando sum() y la tarea de obtener grupos se realiza usando groupby().
Python3
# Python3 code to demonstrate # Count Similar pair in dual list # using sum() + list comprehension + groupby() + sorted() from itertools import groupby # initializing list test_list = [[1, 2], [2, 1], [3, 4], [4, 3], [5, 4]] # printing original list print ("The original list is : " + str(test_list)) # Count Similar pair in dual list # using sum() + list comprehension + groupby() + sorted() res = [(*temp, sum(1 for idx in elements)) for temp, elements in groupby(test_list, key = lambda j : sorted(j))] # printing result print ("The dual list similarity counts : " + str(res))
The original list is : [[1, 2], [2, 1], [3, 4], [4, 3], [5, 4]] The dual list similarity counts : [(1, 2, 2), (4, 5, 1), (3, 4, 2)]
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