logo

¿Cómo inicializar una lista en Python?

Cualquier objeto de Python puede estar contenido en un grupo de valores ordenados en una Lista de Python. Debido a que la lista es una estructura de datos mutable en Python, podemos agregar, eliminar o modificar los valores existentes en este contenedor. A diferencia de los conjuntos, la lista permite numerosas instancias del mismo valor y trata cada una como un elemento diferente. En este tutorial, aprenderemos cómo inicializar un objeto de lista en Python.

Inicializar las listas usando los corchetes

Usar un corchete es una forma de inicializar una lista sin valores si queremos construir una lista vacía en Python sin valores. Para inicializar una lista, solo necesitamos especificar un par de corchetes con o sin valores de elementos.

Código

nat vs cama
 # Python program to show how to initialize a list using square brackets # Initializing an empty list list_ = [] print('An empty list: ', list_) # Initializing a list with some values list_ = [1, 3, 5, 7] print('A non-Empty list: ', list_) 

Producción:

 An empty list: [] A non-Empty list: [1, 3, 5, 7] 

Uso de la función list() incorporada para inicializar una lista

La función list() de Python construye la lista, un objeto iterable. Por lo tanto, esta es otra forma de crear una lista Python vacía sin ningún dato en este lenguaje de codificación.

Un objeto iterador, una secuencia que permite la iteración o un contenedor pueden ser iterables. Se construye una nueva lista vacía si no se proporciona ninguna entrada.

Código

 # Python program to show how to initialize a list using the built-in list function # Initializing an empty list list_ = list() print('An empty list: ', list_) # Initializing a non-empty list list_ = list([1, 2, 3]) print('A non-empty list: ', list_) 

Producción:

 An empty list: [] A non-empty list: [1, 2, 3] 

Se prefiere el método de corchetes a la función list() incorporada porque es más claro e ilustrativo.

Uso de listas por comprensión para inicializar una lista

Podemos emplear el enfoque de comprensión de listas para establecer los parámetros predeterminados de la lista. Consta de una expresión encerrada entre corchetes, una declaración for y una declaración if opcional que puede seguir o no. Cualquier elemento que deseemos agregar a la lista se puede escribir como una expresión. La expresión sería 0 si el usuario inicializara la lista con ceros.

pandas y numpy

La comprensión de listas es un enfoque elegante, sencillo y bien conocido para construir una lista basada en un iterador.

Código

 # Python program to show how to initialize a list using list comprehension # Initializing a list list_ = [item for item in range(10)] print('The list was created using list comprehension: ', list_) 

Producción:

 The list was created using list comprehension: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

Esta técnica inicializa listas mucho más rápido que los bucles for y while de Python.

Inicializar una lista de Python usando el operador *

Otra forma de inicializar una lista en Python es utilizar el operador *. Crea una lista con múltiples valores. La sintaxis para utilizar este operador es [elemento] * n. Aquí n es la cantidad de veces que queremos repetir el elemento en la lista.

Este método ayuda cuando deseamos inicializar una lista de longitudes predefinidas.

Código

 # Python program to show how to use the * operator to initialize a list list_ = [5]*10 print (list) 

Producción:

 [5, 5, 5, 5, 5, 5, 5, 5, 5] 

Este método es muy eficiente y la forma más rápida de crear una lista. Compararemos el tiempo que tardan los métodos más adelante en este tutorial.

La única desventaja de usar este operador para inicializar una lista de Python es cuando tenemos que crear una lista 2D, ya que este método solo creará una lista superficial, es decir, creará un único objeto de lista y todos los índices se referirán a este. objeto que será muy inconveniente. Es por eso que utilizamos la comprensión de listas cuando tenemos que crear listas 2D.

Usando un bucle for y agregar()

Crearemos una lista vacía y ejecutaremos un bucle for para agregar elementos usando la función append() de la lista.

Código

 # Python program to show how to use a for loop to initialize a list arr = [] for i in range(1000): arr.append(0) 

Usar un bucle While para inicializar una lista

Podemos usar un bucle while tal como usamos el bucle for para inicializar una lista.

Código

 # Python program to initialize a list using a while loop # Creating an empty list array = [] # Declaring counter variables i = 0 # Starting a while loop while(i <10): array.append(0) i +="1" print(array) < pre> <p> <strong>Output:</strong> </p> <pre> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] </pre> <h2>Time Complexity</h2> <p>Let us now see how long each of the described approaches will take. We will initialize a list of 100000 elements 1000 times. We will calculate the average time each method takes to perform this task.</p> <p> <strong>Code</strong> </p> <pre> # Python program to see the time taken by various methods to initialize a list # importing the time module to calculate the time taken by a chunk of code import time # initializing the lists for various methods forLoop = [] whileLoop = [] listComprehension = [] starOperator = [] # repeating the process of generating a list of 100000 elements 500 times # Then calculate the average time taken by the methods for i in range(1000): # starting time of the execution begin = time.time() # declaring an empty list list_ = [] # running a for loop and iterating it 100000 times for i in range(100000): list_.append(0) # stoping time of the execution end = time.time() forLoop.append(end - begin) # starting time of the execution begin = time.time() # declaring an empty list list_ = [] i = 0 # COunter variable # running a while loop and iterating it 100000 times while i <100000: 100000 list_.append(0) i +="1" end="time.time()" whileloop.append(end - begin) begin="time.time()" # using a list comprehension to initialize the for in range(100000)] listcomprehension.append(end astrick (*) operator * staroperator.append(end print('the average execution time of loop is: ', sum(forloop) 1000) while sum(whileloop) sum(listcomprehension) taken operator: sum(staroperator) < pre> <p> <strong>Output:</strong> </p> <pre> The average execution time of for loop is: 0.01166958212852478 The average execution time of the while loop is: 0.01916465663909912 The average execution time of list comprehension is: 0.005084690093994141 The average execution time was taken of * operator: 0.00028331947326660156 </pre> <p>We can see that for and while loops take almost the same execution time. However, for loop is a little better than the while loop.</p> <p>List comprehension shows much better performance than the for and while loops. It is 2-3 times faster than the loops. Thus, list comprehension is much more efficient than the append() function of the lists.</p> <p>The * operator has shown the best performance out of all the four methods.</p> <hr></100000:></pre></10):>

Complejidad del tiempo

Veamos ahora cuánto tiempo llevará cada uno de los enfoques descritos. Inicializaremos una lista de 100000 elementos 1000 veces. Calcularemos el tiempo promedio que tarda cada método en realizar esta tarea.

Código

 # Python program to see the time taken by various methods to initialize a list # importing the time module to calculate the time taken by a chunk of code import time # initializing the lists for various methods forLoop = [] whileLoop = [] listComprehension = [] starOperator = [] # repeating the process of generating a list of 100000 elements 500 times # Then calculate the average time taken by the methods for i in range(1000): # starting time of the execution begin = time.time() # declaring an empty list list_ = [] # running a for loop and iterating it 100000 times for i in range(100000): list_.append(0) # stoping time of the execution end = time.time() forLoop.append(end - begin) # starting time of the execution begin = time.time() # declaring an empty list list_ = [] i = 0 # COunter variable # running a while loop and iterating it 100000 times while i <100000: 100000 list_.append(0) i +="1" end="time.time()" whileloop.append(end - begin) begin="time.time()" # using a list comprehension to initialize the for in range(100000)] listcomprehension.append(end astrick (*) operator * staroperator.append(end print(\'the average execution time of loop is: \', sum(forloop) 1000) while sum(whileloop) sum(listcomprehension) taken operator: sum(staroperator) < pre> <p> <strong>Output:</strong> </p> <pre> The average execution time of for loop is: 0.01166958212852478 The average execution time of the while loop is: 0.01916465663909912 The average execution time of list comprehension is: 0.005084690093994141 The average execution time was taken of * operator: 0.00028331947326660156 </pre> <p>We can see that for and while loops take almost the same execution time. However, for loop is a little better than the while loop.</p> <p>List comprehension shows much better performance than the for and while loops. It is 2-3 times faster than the loops. Thus, list comprehension is much more efficient than the append() function of the lists.</p> <p>The * operator has shown the best performance out of all the four methods.</p> <hr></100000:>

Podemos ver que los bucles for y while toman casi el mismo tiempo de ejecución. Sin embargo, el bucle for es un poco mejor que el bucle while.

sistema operativo de red

La comprensión de listas muestra un rendimiento mucho mejor que los bucles for y while. Es 2-3 veces más rápido que los bucles. Por lo tanto, la comprensión de listas es mucho más eficiente que la función append() de las listas.

El operador * ha mostrado el mejor rendimiento de los cuatro métodos.