Python - problema asignar nombre variable lista

 
Vista:

problema asignar nombre variable lista

Publicado por Claudio (1 intervención) el 21/06/2006 09:06:59
Hola

quiero poder nombrar listas de la siguiente manera : Li , donde i es variable

for i in range(1,10):
Li={} ----> aqui no se como hacer que quede el nombre con el valor de i

la idea es que necesito guardar en las listas con nombre L1, L2, L3, etc diferentes elementos que despues necesito recuperar de acuerdo al nombre de la lista

desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema asignar nombre variable lista

Publicado por danisfe (4 intervenciones) el 26/06/2006 12:28:09
Bueno, lo más fácil será definir una lista de listas... (una matriz)
l = [[None]*n]*n
y luego recorres la matriz asi´:

for i in range(0,n):
for j in range(0,n):
l[i][j] = f(i,j)

si lo que quieres es definir diccionarios, entonces tendrás una lista de diccionarios:

l = [{}]

for i in range(1,10):
l.add({...})

y luego podrás acceder a los elementos de la lista con:

for i in l:
print i

Espero que te haya sido de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema asignar nombre variable lista

Publicado por Antonio (1 intervención) el 30/08/2018 20:01:57
Saludos, tengo el mismo problema.
Tal y como Claudio expone necesito crear tantas listas como necesite en ese momento pero automatizando el proceso.
Es decir, en lugar de ir declarando una a una las variables tipo lista (ej: lista = []) el objetivo es poder hacerlo, por ejemplo, con un bucle "for" como 'danisfe' comenta en su respuesta.

El problema que presenta la solución propuesta por 'danisfe' es que o bien no entiendo su código (mi primera inclinación es esta) o contiene algún error de redacción de instrucciones que no consigo detectar y subsanar.

En Python al parecer, algo como esto:

1
2
3
4
nombre = "empleado."
def nombrar():
    for i in range(5):
        nombre+str(i) = []
-----------------------------------------------------------------------
Con la (vana) esperanza de poder obtener esto:

type(empleado.0) --> <class 'list'>
type(empleado.1) --> <class 'list'>
type(empleado.2) --> <class 'list'>
type(empleado.3) --> <class 'list'>
type(empleado.4) --> <class 'list'>
-----------------------------------------------------------------------
No puede hacerse, ya que devuelve un mensaje de error del tipo: "SyntaxError: can't assign to operator"
Por otro lado lógico y normal, pues los manuales para diletantes en python ya advierten de que este tipo de asignaciones no estan permitidas.

El tema es antiguo, hace ya más de 10 años que se planteó la duda y quien primeramente la planteó, no resolvió la duda de si el problema quedó resuelto. Dejo este comentario con la esperanza de reavivar el tema (si es que no ha encontrado solución en un hilo diferente).

Gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema asignar nombre variable lista

Publicado por Juan alejandro suarez (1 intervención) el 02/09/2022 16:20:22
Buen dia señores.

Lo que yo he planteado como solución es lo siguiente:

listaDelista = []

for i in range(0,5):
nuevaLista = []
listaDelista.append(nuevaLista)

De esta manera creamos las listas que necesitemos y si bien no son nombradas como queramos, podemos usarlas posteriormente como quramos, incluso con el indice de la lista principal :

lista1 = listaDelista[0]
lista2 = listaDelista[1]
lista3 = listaDelista[2]
lista4 = listaDelista[3]
lista5 = listaDelista[4]

o usarlas directamente con el indice para operaciones que se necesite:

valorDeLista = listaDelista[4][0] #para acceder a el contenido de la lista 5 en la posición 0

Aplica la misma logica para diccionarios, la diferencia radicaría solo en la forma de acceder {keys:values}


Agradezco cualquier actualización, por ahora esto me ha servido pero si alguien logra solventar la parte "intuitiva" de el planteamiento original seria de mucha ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar