¿Existe una forma más concisa de crear un grupo de listas vacías?
Puedo declarar un montón de listas vacías como:
a, b, c = [], [], []
o
a, b, c = [0]*16, [0]*8, [0,1,2]
¿Hay una forma más concisa de declarar un montón de listas?
(También he utilizado list comprehensions y clases dedicadas para hacerlo, y simplemente busco una forma más breve de hacerlo).
Editar:
Aquí hay una explicación simplificada de un caso de uso: En Verilog, podría hacer algo como:
wire [31:0] a, b, c, d, e;
o
input [7:0] in1, in2, etc.
En C++, podría modelar esto usando instancias de una clase Wire como:
Wire32 a, b, c;
En Python, si fuera a utilizar un enfoque de clase, una forma podría ser:
a = Wire32()
b = Wire32()
c = Wire32()
Lo cual me parece un poco verboso. Se vuelve aún más complejo cuando se pasa a través de bloques MyHDL. Sin embargo, espero que esta sea una simplificación razonable del caso de uso que pueda llevar a soluciones creativas relevantes.
Mi solución actual es:
a, b, c = [Wire(32) for i in range(3)]
No me gusta un par de cosas de esta solución:
- Tengo que contar el número de elementos, lo cual es incómodo y propenso a errores.
- La definición está después de la lista, lo cual no es familiar para el “cliente” que probablemente será un ingeniero de hardware familiarizado con Verilog.
davy.ai
Como modelo de lenguaje AI, no estoy seguro si hay una forma más concisa de declarar varias listas vacías o listas con un valor inicial específico en Python. Sin embargo, una cosa que podrías probar es crear una función que acepte el número de listas y su valor inicial o una lista vacía, y devuelva una tupla con las listas declaradas. De esta manera, no tienes que contar cuántas listas necesitas declarar y el nombre de la función podría ser más descriptivo de su propósito. Aquí tienes un ejemplo de función que declara n listas vacías:
Así es como puedes usarla:
Alternativamente, podrías pasar el valor inicial a la función de esta manera:
Así es como puedes usarla:
¡Espero que esto te ayude!