A veces, mientras trabajamos con tuplas de Python, podemos tener un problema en el que necesitamos realizar la eliminación de todas las tuplas que contienen signos de puntuación en las tuplas. Este tipo de problema puede ocurrir en aplicaciones de filtrado de datos. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_list = [(‘.’, ‘, ‘), (‘!’, 8)]
Salida : []Entrada : test_list = [(1, 3), (3, 8)]
Salida : [(1, 3), (3, 8)]
Método #1: Usarany() + list comprehension + string.punctuation
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de identificar puntuación usando string.puntuations, y any() se usa para probar si los elementos pertenecen a alguna de puntuación.
# Python3 code to demonstrate working of # Remove Punctuation Tuples # Using any() + list comprehension + string.punctuation import string # initializing list test_list = [('.', ', '), ('!', 8), (5, 6), (';', 10)] # printing original list print("The original list is : " + str(test_list)) # Remove Punctuation Tuples # Using any() + list comprehension + string.punctuation res = [idx for idx in test_list if not any(punc in idx for punc in string.punctuation)] # printing result print("Tuples after punctuation removal : " + str(res))
The original list is : [('.', ', '), ('!', 8), (5, 6), (';', 10)] Tuples after punctuation removal : [(5, 6)]
Método #2: Usarregex() + filter() + lambda + string.punctuation
La combinación de las funciones anteriores se puede usar para resolver este problema. En este, realizamos la tarea de identificación de puntuaciones usando expresiones regulares y filtrando usando filter() + lambda. Tiene la limitación de trabajar solo en strings y para verificar un índice particular.
# Python3 code to demonstrate working of # Remove Punctuation Tuples # Using regex() + filter() + lambda + string.punctuation import string import re # initializing list test_list = [('.', ', '), ('!', '8'), ('5', '6'), (';', '10')] # printing original list print("The original list is : " + str(test_list)) # Remove Punctuation Tuples # Using regex() + filter() + lambda + string.punctuation temp = re.compile('[{}]'.format(re.escape(string.punctuation))) res = list(filter(lambda tup: not temp.search(tup[0]), test_list)) # printing result print("Tuples after punctuation removal : " + str(res))
The original list is : [('.', ', '), ('!', '8'), ('5', '6'), (';', '10')] Tuples after punctuation removal : [('5', '6')]
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