index - python list to string
Looping sobre una lista en Python (2)
Tengo una lista con sublistas en ella. Quiero imprimir todas las sublistas con una longitud igual a 3.
Estoy haciendo lo siguiente en Python:
for x in values[:]:
if len(x)==3:
print x
values
es la lista original. ¿El código anterior imprime toda la sublista con una longitud igual a 3 para cada valor de x
? Quiero mostrar las sublistas con una length==3
solo una vez.
El problema esta resuelto. El problema es con el editor de Eclipse. No entiendo la razón, pero muestra solo la mitad de mi lista cuando ejecuto mi ciclo.
¿Hay alguna configuración que deba cambiar en Eclipse?
Prueba esto,
x in mylist
es mejor y más legible que x in mylist[:]
y tu len(x)
debería ser igual a 3
.
>>> mylist = [[1,2,3],[4,5,6,7],[8,9,10]]
>>> for x in mylist:
... if len(x)==3:
... print x
...
[1, 2, 3]
[8, 9, 10]
o si necesita más comprensión de la list-comprehensions uso pitónico
>>> [x for x in mylist if len(x)==3]
[[1, 2, 3], [8, 9, 10]]
>>>
También puede usar for x in values
lugar de for x in values[:]
; este último hace una copia innecesaria. Además, por supuesto, ese código comprueba una longitud de 2 en lugar de 3 ...
El código solo imprime un elemento por valor de x
- y x
itera sobre los elementos de los values
, que son las sublistas. Por lo tanto, solo imprimirá cada sublista una vez.