En este artículo, veremos cómo podemos eliminar una tupla vacía de una lista de tuplas dada. Encontraremos varias formas en las que podemos realizar esta tarea de eliminar tuplas usando varios métodos y formas en Python. Ejemplos:
Input : tuples = [(), ('ram','15','8'), (), ('laxman', 'sita'), ('krishna', 'akbar', '45'), ('',''),()] Output : [('ram', '15', '8'), ('laxman', 'sita'), ('krishna', 'akbar', '45'), ('', '')] Input : tuples = [('','','8'), (), ('0', '00', '000'), ('birbal', '', '45'), (''), (), ('',''),()] Output : [('', '', '8'), ('0', '00', '000'), ('birbal', '', '45'), ('', '')]
Método 1: Usando el concepto de Comprensión de Listas
Python3
# Python program to remove empty tuples from a # list of tuples function to remove empty tuples # using list comprehension def Remove(tuples): tuples = [t for t in tuples if t] return tuples # Driver Code tuples = [(), ('ram','15','8'), (), ('laxman', 'sita'), ('krishna', 'akbar', '45'), ('',''),()] print(Remove(tuples))
Producción:
[('ram', '15', '8'), ('laxman', 'sita'), ('krishna', 'akbar', '45'), ('', '')]
Método 2: Usando el método filter() Usando el método incorporado filter() en Python, podemos filtrar los elementos vacíos pasando None como parámetro. Este método funciona tanto en Python 2 como en Python 3 y superior, pero el resultado deseado solo se muestra en Python 2 porque Python 3 devuelve un generador. filter() es más rápido que el método de comprensión de listas. Veamos qué sucede cuando ejecutamos el programa en Python 2.
Python
# Python2 program to remove empty tuples # from a list of tuples function to remove # empty tuples using filter def Remove(tuples): tuples = filter(None, tuples) return tuples # Driver Code tuples = [(), ('ram','15','8'), (), ('laxman', 'sita'), ('krishna', 'akbar', '45'), ('',''),()] print Remove(tuples)
Producción:
[('ram', '15', '8'), ('laxman', 'sita'), ('krishna', 'akbar', '45'), ('', '')]
Ahora veamos qué sucede cuando intentamos ejecutar el programa en Python 3 y superior. Al ejecutar el programa en Python 3, como se mencionó, se devuelve un generador.
Python3
# Python program to remove empty tuples from # a list of tuples function to remove empty # tuples using filter def Remove(tuples): tuples = filter(None, tuples) return tuples # Driver Code tuples = [(), ('ram','15','8'), (), ('laxman', 'sita'), ('krishna', 'akbar', '45'), ('',''),()] print (Remove(tuples))
Producción:
<filter object at 0x7fe26eb0f3c8>
Método #3: Usar el método len()
Python3
# Python program to remove empty tuples from a # list of tuples function to remove empty tuples # using len() def Remove(tuples): for i in tuples: if(len(i)==0): tuples.remove(i) return tuples # Driver Code tuples = [(), ('ram','15','8'), (), ('laxman', 'sita'), ('krishna', 'akbar', '45'), ('',''),()] print(Remove(tuples))
[('ram', '15', '8'), ('laxman', 'sita'), ('krishna', 'akbar', '45'), ('', '')]
Publicación traducida automáticamente
Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA