logo

Como inicializar uma lista em Python?

Qualquer objeto Python pode estar contido em um grupo de valores ordenados em uma lista Python. Como a lista é uma estrutura de dados mutável em Python, podemos adicionar, remover ou alterar os valores existentes neste contêiner. Ao contrário dos conjuntos, a lista permite inúmeras instâncias do mesmo valor e trata cada uma como um item diferente. Neste tutorial, aprenderemos como inicializar um objeto de lista em Python.

Inicialize as listas usando colchetes

Usar colchetes é uma maneira de inicializar uma lista sem valores se quisermos construir uma lista vazia em Python sem valores. Para inicializar uma lista, precisamos apenas especificar um par de colchetes com ou sem valores de item.

Código

java converte string para int
 # 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_) 

Saída:

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

Usando a função list() integrada para inicializar uma lista

A função list() do Python constrói a lista, um objeto iterável. Portanto, esta é outra maneira de criar uma lista Python vazia sem nenhum dado nesta linguagem de codificação.

Um objeto iterador, uma sequência que permite a iteração ou um contêiner podem ser iteráveis. Uma nova lista vazia é construída se nenhuma entrada for fornecida.

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_) 

Saída:

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

O método de colchetes é preferido em relação à função list() integrada porque é mais claro e ilustrativo.

Usando compreensões de lista para inicializar uma lista

Podemos empregar a abordagem de compreensão de lista para definir os parâmetros padrão da lista. Compreende uma expressão entre colchetes, uma instrução for e uma instrução if opcional que pode ou não seguir. Qualquer item que desejemos adicionar à lista pode ser escrito como uma expressão. A expressão seria 0 se o usuário inicializasse a lista com zeros.

remover o primeiro caractere no Excel

A compreensão de lista é uma abordagem elegante, direta e bem conhecida para construir uma lista baseada em um 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_) 

Saída:

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

Esta técnica inicializa listas muito mais rápido que os loops for e while do Python.

Inicialize uma lista Python usando o operador *

Outra forma de inicializar uma lista em Python é usando o operador *. Ele cria uma lista com vários valores. A sintaxe de uso deste operador é [elemento] * n. Aqui n é o número de vezes que queremos repetir o elemento da lista.

Este método ajuda quando desejamos inicializar uma lista de comprimentos predefinidos.

Código

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

Saída:

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

Este método é muito eficiente e a maneira mais rápida de criar uma lista. Compararemos o tempo gasto pelos métodos posteriormente neste tutorial.

A única desvantagem de usar este operador para inicializar uma lista Python é quando temos que criar uma lista 2D, pois este método criará apenas uma lista superficial, ou seja, criará um único objeto de lista, e todos os índices se referirão a este objeto que será muito inconveniente. É por isso que usamos a compreensão de listas quando precisamos criar listas 2D.

Usando um loop for e anexar()

Criaremos uma lista vazia e executaremos um loop for para adicionar itens usando a função append() da lista.

classificação de lista de arrays java

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) 

Usando um loop While para inicializar uma lista

Podemos usar um loop while assim como usamos o loop for para inicializar uma 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):>

Complexidade de tempo

Vamos agora ver quanto tempo levará cada uma das abordagens descritas. Inicializaremos uma lista de 100.000 elementos 1.000 vezes. Calcularemos o tempo médio que cada método leva para realizar esta tarefa.

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 os loops for e while levam quase o mesmo tempo de execução. No entanto, o loop for é um pouco melhor que o loop while.

A compreensão da lista mostra um desempenho muito melhor do que os loops for e while. É 2 a 3 vezes mais rápido que os loops. Assim, a compreensão da lista é muito mais eficiente do que a função append() das listas.

O operador * mostrou o melhor desempenho de todos os quatro métodos.