Tengo una lista de tuplas y algunas de las tuplas solo tienen un elemento. ¿Cómo elimino las tuplas con un solo elemento de la lista? Quiero mantener tuplas con dos elementos.

Las tuplas que tengo contienen una cadena y luego un número entero.

list = ((['text'],1),(['text'],2),((3,))
1
lo_rabb 7 jun. 2016 a las 17:02

4 respuestas

La mejor respuesta

Puedo sugerir:

filtered_list = [tup for tup in list if len(tup) == 2]

También puede verificar si la longitud de la tupla es mayor que una o cualquier otra cosa ...

5
Neo 7 jun. 2016 a las 14:05

Desea crear una lista con corchetes en lugar de paréntesis, de lo contrario, crearía una tupla.

Además, no llame a sus variables como nombres integrados como sugirió EdChum.

La solución aquí es filtrar su lista:

l=[(1,2),(3,),(4,5)]
filter(lambda x: len(x)!=1, l)
2
fafl 7 jun. 2016 a las 14:06

Podría usar algo así para reconstruir una nueva tupla con tuplas que tengan una longitud mayor que 1.

new_list = tuple(item for item in your_list if len(item) > 1)
0
kaycee 7 jun. 2016 a las 14:10

Qué pasa:

new_list = [x for x in old_list if len(x) > 1]
3
K. Menyah 7 jun. 2016 a las 14:06