lista de listas

Agrupa todas las consultas sobre los lenguajes de programacion como C, C++, Python, Java ...

lista de listas

Notapor elzorro » Sab May 14, 2011 8:40 pm

Hola de nuevo comunidad del foro jeje ahora tengo otra pregunta pero es algo mas sencillo, hace tiempo en la clase nos dieron un taller para realizar y me falto realizar solo un punto :S el tema es listas y ahora vemos matrices pero aun no he podido resolver el problema:

Desarrollar una funcion que tome una lista de listas y retorne una lista sencilla con todos los elementos que

flatten([[1], [2]]) retorna [1,2].

bueno pues yo como soy novatisimo pense que las otras listas que estan dentro y no tienen nada son listas vacias [] y hice esto:
def flatten(l):
a=0
b=[]
while a<len(l):
if l[a]!=[]:
b=b+[l[a]]
a=a+1
return b


undi f5 para probar mi programa y puse el ejemplo y retorno lo mismo D:
elzorro
 
Mensajes: 6
Registrado: Sab May 14, 2011 2:09 am

Re: lista de listas

Notapor Mightygaver » Sab May 14, 2011 10:03 pm

En realidad es un pequeño error de sintaxis.

El código que creo que tú querías escribir era el siguiente.

def flatten(l):
a=0
b=[]
while a<len(l):
if l[a]!=[]:
b=b+l[a]
a=a+1
return b


En este caso accedes a la lista contenida en el índice a. Al usar el operador +, estás sumando ambas listas.
Con ello, las unes y consigues que los elementos de ambas listas estén en la misma.
El error que cometías era crear una lista con el elemento del índice a, por lo que era una lista de listas lo que sumabas.

Además, también me he dado cuenta de que no te hace falta comprobar si la lista está vacía. En el caso en el que l[a]
esté vacía, b quedará como estaba.

Como consejo personal, te aconsejo que utilices bucles for para iterar la secuencia, el
código suele acabar en código más entendible.

def flatten(seq):
b = []
for s in seq:
for e in s:
b.append(e)
return b


Y bueno, bienvenido al foro, espero que la pases bien y con esta comunidad :D.
Mightygaver
 
Mensajes: 69
Registrado: Vie Ago 27, 2010 5:46 pm
Ubicación: Vila-real, España

Re: lista de listas

Notapor elzorro » Dom May 15, 2011 12:35 pm

wiii :D gracias la verdad no se usar for entonces solo uso while y condicionales xD pero por lo menos ya podre dormir sin pensar en eso :D
elzorro
 
Mensajes: 6
Registrado: Sab May 14, 2011 2:09 am


Volver a Sobre lenguajes de programación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado