Tengo una lista con sublistas. 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 todas las sublistas con una longitud igual a 3 para cada valor de x
? Quiero mostrar las sublistas donde length == 3
solo una vez.
El problema esta resuelto. El problema es con el editor Eclipse. No entiendo la razón, pero muestra solo la mitad de mi lista cuando ejecuto mi bucle.
¿Hay alguna configuración que deba cambiar en Eclipse?
print values
y mostrar la salida aquí? editar: o simplemente verifique que no esté en blanco.Respuestas:
Prueba esto,
x in mylist
es mejor y más legible quex in mylist[:]
ylen(x)
debería ser igual a3
.o si necesita más uso pitónico de listas de comprensión
fuente
También puede usar en
for x in values
lugar defor x in values[:]
; este último hace una copia innecesaria. Además, por supuesto, ese código verifica una longitud de 2 en lugar de 3 ...El código solo imprime un elemento por valor de
x
- yx
está iterando sobre los elementos devalues
, que son las sublistas. Por lo tanto, solo imprimirá cada sublista una vez.fuente
values
.Aquí está la solución que estaba buscando. Si desea crear List2 que contiene la diferencia de los elementos numéricos en List1.
Tenga en cuenta que mientras
len(list1)
sea 11 (elementos),len(list2)
solo serán 10 elementos porque estamos comenzando nuestro bucle for desde el elemento con el índice 1 en la lista1 no desde el elemento con el índice 0 en la lista1fuente
Haz esto en su lugar:
fuente