¿Cómo puedo hacer varias listas vacías en python?

¿Cómo puedo hacer muchas listas vacías sin escribir manualmente

list1=[] , list2=[], list3=[] 

¿Hay un bucle for que me haga ‘n’ número de tales listas vacías?

Una lista de comprensión es más fácil aquí:

 >>> n = 5 >>> lists = [[] for _ in range(n)] >>> lists [[], [], [], [], []] 

Tenga cuidado de no caer en la trampa que es:

 >>> lists = [[]] * 5 >>> lists [[], [], [], [], []] >>> lists[0].append(1) >>> lists [[1], [1], [1], [1], [1]] 

Si desea crear listas diferentes sin una “lista de listas”, intente esto:

 list1, list2, list3, list4 = ([] for i in range(4)) 

Buscar lista de comprensión

 listOfLists = [[] for i in range(N)] 

Ahora, listOfLists tiene N listas vacías

Más enlaces en lista de comprensiones:

1 2 3

Espero que esto ayude

Qué tal esto.

 def mklist(n): for _ in range(n): yield [] 

Uso:

 list(mklist(10)) [[], [], [], [], [], [], [], [], [], []] a, b, c = mklist(3) # a=[]; b=[]; c=[] 

También puede agregar una lista de la lista de listas … así también. No devolverá ningún error. Pero no tengo idea de para qué sirve.

 n = 5 >>> lists = [[[]]] for _ in range(n)] >>> lists [[[[]]], [[[]]], [[[]]], [[[]]], [[[]]]] 

Lamento haber llegado dos años tarde, pero quizás todavía pueda ayudar a otras personas.

El siguiente código se “creará” dinámicamente. Para cada iteración, se emitirá el siguiente comando:

número de lista = []

Donde número es el valor de i en el bucle.

 x = 3 # amount of lists you want to create for i in range(1, x+1): command = "" # this line is here to clear out the previous command command = "list" + str(i) + " = []" exec(command) 

El resultado de este fragmento de código en particular es tres variables: list1, list2 y list3 que se crean y cada una asigna una lista vacía.

Puedes generalizar esto para hacer prácticamente cualquier cosa que quieras. Tenga en cuenta que no puede poner esto en una función por lo que sé, debido a cómo funcionan las variables y las variables globales.

 name = "my_var" # This has to be a string, variables like my_var1, my_var2 will be created. value = "[]" # This also has to be a string, even when you want to assign integers! When you want to assign a string "3", you'd do this: value = "'3'" amount = 5 # This must be an integer. This many variables will be created (my_var1, my_var2 ... my_var5). for i in range(1, amount+1): command_variable = "" command_variable = name + str(i) + " = " + value exec(command_variable) 

Espero haberte ayudado!

Veo que muchas respuestas aquí te dan muchas listas sin nombres asignados (como elementos de una lista más grande). Esto puede no ser siempre lo que se necesita. Es posible crear múltiples listas vacías, cada una con un nombre / valor diferente, utilizando una tupla:

 a,b,c = ([],[],[]) 

Cambiar esta estructura debería conseguirte lo que quieres.