A veces, mientras trabajamos con listas de Python, podemos tener un problema en el que necesitamos realizar la extracción de todos los pares de elementos en la lista. Este tipo de problema puede tener aplicación en dominios como el desarrollo web y la programación diaria. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_list = [1, 2, 3, 4]
Salida : []Entrada : test_list = [2, 2, 2, 2, 3, 3, 4]
Salida : [(2, 2), (2, 2), (3, 3)]
Método n.° 1: usar Counter()
la comprensión de listas +
La combinación de las funciones anteriores se puede usar para resolver este problema. En este, las frecuencias se extraen utilizando Counter() y la construcción de pares se realiza utilizando la comprensión de listas.
# Python3 code to demonstrate working of # Extract Similar pairs from List # Using Counter() + list comprehension from collections import Counter # initializing list test_list = [4, 6, 7, 4, 2, 6, 2, 8] # printing original list print("The original list is : " + str(test_list)) # Extract Similar pairs from List # Using Counter() + list comprehension res = [(key, key) for key, val in Counter(test_list).items() for _ in range(val // 2)] # printing result print("The records after pairing : " + str(res))
The original list is : [4, 6, 7, 4, 2, 6, 2, 8] The records after pairing : [(4, 4), (6, 6), (2, 2)]
Método #2: Uso fromkeys()
de la comprensión de listas +
Esta es otra forma más en la que se puede realizar esta tarea. En esto, realizamos la tarea de Counter() usando fromkeys() y get() del diccionario, es decir, obteniendo frecuencias.
# Python3 code to demonstrate working of # Extract Similar pairs from List # Using fromkeys() + list comprehension # initializing list test_list = [4, 6, 7, 4, 2, 6, 2, 8] # printing original list print("The original list is : " + str(test_list)) # Extract Similar pairs from List # Using fromkeys() + list comprehension temp = dict.fromkeys(test_list, 0) for key in test_list: temp[key] += 1 res = [(key, key) for key, val in temp.items() for _ in range(val // 2)] # printing result print("The records after pairing : " + str(res))
The original list is : [4, 6, 7, 4, 2, 6, 2, 8] The records after pairing : [(4, 4), (6, 6), (2, 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