Inicializar una lista a una longitud específica en Python [duplicate]
⏰ 2 minutos de lectura
Janusz
¿Cómo inicializo una lista con 10 veces un valor predeterminado en Python?
Estoy buscando una forma atractiva de inicializar una lista vacía con un rango específico. Así que haga una lista que contenga 10 ceros o algo así para asegurarse de que mi lista tenga una longitud específica.
Si el “valor predeterminado” que desea es inmutable, la sugerencia de @ eduffy, por ejemplo [0]*10es bastante bueno.
Pero si quieres, digamos, una lista de diez dicts, hacer no usar [{}]*10 — eso le daría una lista con los mismo inicialmente vacío dict diez veces, no diez distintos. Más bien, usa [{} for i in range(10)] o construcciones similares, para construir diez dicts para hacer su lista.
o [{} for _ in range(10)] para evitar advertencias de pelusa
– Martín Konecny
3 de mayo de 2013 a las 1:22
algo como [0] * 10 no es la forma de crear una lista 2d. Si creas una lista l = [[0]*10]*10]intenta cambiar l[0][0] = 100encontrarás que l[1][0]yo[2][0] … yo[9][0] están todos configurados en 100. Es porque * replica la referencia para el objeto.
– Juan Wu
29/09/2014 a las 13:31
Solo dale a ese. terminó con [[” for i in range(5)] for j in range(5)]en lugar de >>> card_strings = [[”]*5]*5 >>> cadenas_cartas[0][0] = “Bueno, eso fue inesperado…”
– RobotHumanos
19 de septiembre de 2015 a las 9:18
la multiplicación de listas funciona.
>>> [0] * 10
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Pejván
En una charla sobre los componentes internos de los contenedores centrales en Python en PyCon 2012, Raymond Hettinger sugiere usar [None] * n para preasignar la longitud que desee.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información