A veces, mientras trabajamos con listas de Python, podemos tener un problema en el que necesitamos realizar la extracción de todos los dígitos de la lista de tuplas. Este tipo de problema puede encontrar su aplicación en dominios de datos y programación día a día. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_list = [(15, 3), (3, 9)]
Salida : [9, 5, 3, 1]Entrada : test_list = [(15, 3)]
Salida : [5, 3, 1]
Método #1: Usar map() + chain.from_iterable() + set() + loop
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de aplanar la lista usando chain.from_iterable(), y luego los dígitos se extraen usando el método bruto. set() se usa para eliminar dígitos duplicados.
Python3
# Python3 code to demonstrate working of # Extract digits from Tuple list # Using map() + chain.from_iterable() + set() + loop from itertools import chain # initializing list test_list = [(15, 3), (3, 9), (1, 10), (99, 2)] # printing original list print("The original list is : " + str(test_list)) # Extract digits from Tuple list # Using map() + chain.from_iterable() + set() + loop temp = map(lambda ele: str(ele), chain.from_iterable(test_list)) res = set() for sub in temp: for ele in sub: res.add(ele) # printing result print("The extracted digits : " + str(res))
The original list is : [(15, 3), (3, 9), (1, 10), (99, 2)] The extracted digits : {'1', '0', '3', '2', '9', '5'}
Método n.º 2: uso de expresiones regulares
Esta es otra forma en la que se puede realizar esta tarea. En esto, se usa una expresión regular apropiada para extraer los dígitos únicos requeridos.
Python3
# Python3 code to demonstrate working of # Extract digits from Tuple list # Using regex expression import re # initializing list test_list = [(15, 3), (3, 9), (1, 10), (99, 2)] # printing original list print("The original list is : " + str(test_list)) # Extract digits from Tuple list # Using regex expression temp = re.sub(r'[\[\]\(\), ]', '', str(test_list)) res = [int(ele) for ele in set(temp)] # printing result print("The extracted digits : " + str(res))
The original list is : [(15, 3), (3, 9), (1, 10), (99, 2)] The extracted digits : [5, 9, 2, 0, 1, 3]
Método #3: Usando los métodos list(),str(),map(),set() .
Inicialmente, convirtió todos los elementos de tupla en strings y los concatenó. Más tarde, usó el método set() para eliminar los duplicados, convirtió los elementos de string en elementos enteros y finalmente los convirtió en tipos de datos de lista.
Python3
# Python3 code to demonstrate working of # Extract digits from Tuple list # initializing list test_list = [(15, 3), (3, 9), (1, 10), (99, 2)] # printing original list print("The original list is : " + str(test_list)) x="" # Extract digits from Tuple list for i in test_list: for j in i: x+=str(j) res=list(map(int,set(x))) # printing result print("The extracted digits : " + str(res))
The original list is : [(15, 3), (3, 9), (1, 10), (99, 2)] The extracted digits : [2, 3, 0, 1, 9, 5]
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