programa
Tamanho da lista Python: 8 métodos diferentes para encontrar o comprimento de uma lista em Python
As listas Python são uma estrutura de dados fundamental, essencial para armazenar e manipular coleções de itens. Sua flexibilidade e facilidade de uso os tornam indispensáveis em uma ampla gama de tarefas de programação, desde a análise de dados até o desenvolvimento da Web. Devido ao seu uso generalizado, um requisito comum que surge é determinar o tamanho de uma lista. Embora a função len() seja amplamente conhecida, a sintaxe rica do Python e o suporte da biblioteca oferecem várias outras maneiras de fazer isso, cada uma com suas próprias nuances e aplicações. Este artigo analisa oito desses métodos, fornecendo insights sobre seu funcionamento e eficiência.
Por que as listas Python são importantes?
As listas em Python são matrizes dinâmicas que podem conter uma mistura de tipos de dados, oferecendo uma ferramenta versátil para armazenamento e manipulação de dados. Eles facilitam operações como iteração, divisão e manipulações abrangentes com métodos incorporados como append(), remove() e sort(), entre outros. Você pode ler mais sobre manipulações de listas neste tutorial.
Como definir uma lista em Python
Para os fins deste tutorial, usaremos uma lista simples para demonstrar cada método. Considere a lista my_list
, definida da seguinte forma:
# Define a sample list to be used throughout the tutorial
my_list = ["I", "Love", "Learning", "Python"]
Essa lista, embora simples, serve como um candidato perfeito para ilustrar várias técnicas para determinar seu comprimento.
8 maneiras de encontrar o tamanho da lista Python
1. Encontre o tamanho de uma lista usando o len()
Função
A função len()
é a abordagem mais direta para você determinar o tamanho de uma lista. Ele não é apenas conciso, mas também altamente eficiente, o que o torna o método preferido na maioria dos casos.
# Use len() to find the size of the list
length = len(my_list)
print(length) # Output: 4
2. Localizar o tamanho de uma lista usando um loop For
Chamada de método ingênuo, essa abordagem envolve a inicialização de um contador e seu incremento para cada elemento encontrado em um loop for na lista. Você pode saber mais sobre loops for e outros tipos de loops neste tutorial.
# Naive method using a for loop to count the list's size
counter = 0
for item in my_list:
counter += 1
print(counter) # Output: 4
3. Descubra o tamanho de uma lista usando uma compreensão de lista
As compreensões de lista em Python oferecem uma sintaxe compacta para realizar operações em uma lista. Aqui, nós a usamos junto com a função sum()
para contar os elementos.
# Using list comprehension to count the list's size
length = sum([1 for item in my_list])
print(length) # Output: 4
4. Encontrar o tamanho de uma lista usando reduce()
A função reduce()
é um pouco mais avançada, mas muito poderosa. Aplica uma função de dois argumentos cumulativamente aos itens de uma lista, da esquerda para a direita, de modo a reduzir a lista a um único valor. Para nossa finalidade, vamos usá-lo para contar o número de itens em uma lista.
Para facilitar a compreensão, vamos dividi-lo em duas partes:
- Defina uma função simples: Primeiro, definiremos uma função simples que recebe dois argumentos: a contagem atual (que chamaremos de
count_so_far
) e um item individual da lista (que chamaremos de_
para indicar que não usaremos esse item). - Use
reduce()
: Em seguida, usaremos o sitereduce()
para aplicar essa função a cada item da lista, contando efetivamente os itens à medida que você avança.
# Import the reduce function from the functools module
from functools import reduce
# Define a simple function to use with reduce
def update_count(count_so_far, _):
"""Increases the count by 1. The second parameter is not used."""
return count_so_far + 1
# Use reduce to count the items in the list
# We start counting from 0, which is why we have '0' at the end
list_length = reduce(update_count, my_list, 0)
# Print out the result
print(list_length) # Output will be 4
5. Encontrar o tamanho de uma lista usando iter()
e next()
Para que você entenda como contar os elementos de uma lista usando iter()
e next()
, é necessário familiarizar-se com os iteradores. Um iterador é um objeto em Python que nos permite percorrer todos os elementos de uma lista um a um. A função iter()
transforma uma lista em um iterador, e a função next()
passa para o próximo elemento no iterador.
Aqui está um detalhamento passo a passo:
- Crie um Iterador: Começamos transformando nossa lista em um iterador usando a função
iter()
. Isso nos permite examinar a lista um item de cada vez. - Contagem usando um loop: Configuramos um loop que continuará sendo executado até que não haja mais itens na lista. Dentro do loop, usamos a função
next()
para passar para o próximo item da lista. Cada vez que passamos com sucesso para o próximo item, aumentamos nossa contagem em 1. - Lidar com o fim da lista: Eventualmente, chegaremos ao final da lista. Quando isso acontecer, o site
next()
causará um erroStopIteration
, indicando que não há mais itens. Capturamos esse erro com um bloco try e except e paramos de contar.
Aqui está o código simplificado com comentários para ajudar você a entender cada etapa:
# Step 1: Turn the list into an iterator
list_iterator = iter(my_list)
# Initialize a counter to keep track of the number of items
count = 0
# Step 2: Loop through the list using the iterator
while True:
try:
# Use next() to get the next item from the iterator
next(list_iterator)
# If next() was successful, increase the count
count += 1
except StopIteration:
# Step 3: If we reach the end of the list, break out of the loop
break
# Print out the total count of items in the list
print(count) # Output will be 4
6. Encontrar o tamanho de uma lista usando enumerate()
A função enumerate()
em Python adiciona um contador a um iterável e o retorna na forma de um objeto enumerado. Essa função é comumente usada em loops para obter o índice e o valor de cada item da lista. Embora o enumerate()
não seja normalmente usado para encontrar o tamanho de uma lista, podemos usá-lo para ilustrar como o Python pode ser flexível.
# Step 1: Enumerate the list and convert it to a list of tuples (index, element)
enumerated_list = list(enumerate(my_list))
# Step 2: Extract the last tuple (which contains the last index and the last element)
last_tuple = enumerated_list[-1]
# Step 3: The size of the list is the last index plus 1 (because of zero-based indexing)
list_size = last_tuple[0] + 1
# Print out the size of the list
print(list_size) # Output will be 4
7. Encontre o tamanho de uma lista usando o NumPy
O NumPy é uma biblioteca avançada em Python que é amplamente usada no campo da computação científica. Ele oferece suporte a matrizes e arrays grandes e multidimensionais, além de uma coleção de funções matemáticas para operar nesses arrays. Para quem trabalha com dados numéricos, o NumPy é uma ferramenta indispensável, oferecendo armazenamento e operações eficientes em grandes conjuntos de dados. Para descobrir o tamanho de uma lista em Python usando NumPy, podemos usar o atributo .size
, conforme mostrado abaixo.
# Import the NumPy library
import numpy as np
# Step 1: Convert the list into a NumPy array
my_array = np.array(my_list)
# Step 2: Use the 'size' attribute of the NumPy array to find its size
array_size = my_array.size
# Print out the size of the array (which is the same as the length of the list)
print(array_size) # Output will be 4
8. Encontrar o tamanho de uma lista usando map()
e sum()
Semelhante à compreensão de lista, esse método usa map()
para aplicar uma função que retorna 1 para cada elemento, com sum()
e, em seguida, agrega esses valores para contar os elementos. Esse método requer que você esteja familiarizado com as funções lambda em Python. Para se familiarizar com o assunto, não deixe de conferir este tutorial de lambda em Python.
# Using map() and sum() to count the list's size
length = sum(map(lambda x: 1, my_list))
print(length) # Output: 4
Comparação do desempenho de diferentes métodos de tamanho de lista do Python
Uma coisa é você conhecer todos os oito métodos para encontrar o tamanho das listas, mas outra coisa é usar o melhor método. Para comparar o desempenho dos oito métodos discutidos, usaremos o módulo timeit
do Python, que oferece uma maneira simples de cronometrar pequenas partes do código Python. Isso nos dará uma ideia clara de como cada método se comporta em termos de velocidade de execução. Observe que os tempos de execução podem ser diferentes dependendo do seu computador ou do local onde você executa o código.
Configuração do experimento
Para facilitar as coisas para você, definimos nossa lista e as funções para cada método. Não há problema se você não estiver familiarizado com as funções; tudo o que estamos fazendo aqui é sistematizar os diferentes métodos para facilitar a comparação.
import timeit
from functools import reduce
import numpy as np
# Define the list
my_list = ["I", "Love", "Learning", "Python"] * 100 # Increased size for better statistical signifcance
# Method 1: Using len()
def method_len():
return len(my_list)
# Method 2: Looping through the list
def method_loop():
counter = 0
for _ in my_list:
counter += 1
return counter
# Method 3: Using a list comprehension
def method_list_comprehension():
return sum([1 for _ in my_list])
# Method 4: Using reduce()
def method_reduce():
return reduce(lambda acc, _: acc + 1, my_list, 0)
# Method 5: Using iter() and next()
def method_iter_next():
iterator = iter(my_list)
counter = 0
while True:
try:
next(iterator)
counter += 1
except StopIteration:
break
return counter
# Method 6: Using enumerate()
def method_enumerate():
return max(enumerate(my_list, 1))[0]
# Method 7: Using numpy
def method_numpy():
np_array = np.array(my_list)
return np_array.size
# Method 8: Using map() and sum()
def method_map_sum():
return sum(map(lambda _: 1, my_list))
Cronograma de cada método
Em seguida, usaremos o site timeit.timeit()
para cronometrar cada função de acordo com a ordem especificada:
# List to hold method names and their execution times
timing_results = []
methods = [method_len, method_loop, method_list_comprehension, method_reduce,
method_iter_next, method_enumerate, method_numpy, method_map_sum]
# Time each method
for method in methods:
# Execute the operation 100000 times for better statistical significance
time_taken = timeit.timeit(method, number=100000)
timing_results.append((method.__name__, time_taken))
# Sort results by time taken for better readability
timing_results.sort(key=lambda x: x[1])
# Print the timing results
for method_name, time_taken in timing_results:
print(f"{method_name}: {time_taken:.5f} seconds")
Ao executar isso no DataLab, recebemos os seguintes resultados:
Método |
Tempo gasto |
O método |
0,03410 segundos |
O método de compreensão de lista |
1,50325 segundos |
O método de loop for |
1,93764 segundos |
O método |
2,26446 segundos |
O método |
2,41315 segundos |
O método |
3,08434 segundos |
O método |
4,41239 segundos |
O método numpy |
10,61716 segundos |
Conclusão
Concluindo, essa exploração de vários métodos para encontrar o tamanho de uma lista em Python não só demonstrou a versatilidade e o poder do Python como linguagem de programação, mas também destacou a importância de compreender a eficiência e a aplicabilidade de diferentes abordagens.
Para iniciantes, é fundamental começar com os métodos mais diretos e eficientes, como o uso da função len() incorporada, que é otimizada para desempenho e legibilidade. Para saber mais sobre como trabalhar com listas, confira os seguintes recursos:
- Pista de habilidades de Fundamentos de Python
- Curso de introdução ao Python
- Folha de dicas de Python para iniciantes

Adel é educador de ciência de dados, palestrante e evangelista da DataCamp, onde lançou vários cursos e treinamentos ao vivo sobre análise de dados, aprendizado de máquina e engenharia de dados. Ele é apaixonado pela disseminação das habilidades e da alfabetização de dados nas organizações e pela interseção entre tecnologia e sociedade. Ele tem um mestrado em ciência de dados e análise de negócios. Em seu tempo livre, você pode encontrá-lo passeando com seu gato Louis.
Comece sua jornada com Python hoje mesmo!
curso
Introdução ao Python para finanças
programa
Desenvolvedor Python

blog
6 práticas recomendadas de Python para um código melhor

blog
5 desafios Python para desenvolver suas habilidades

DataCamp Team
5 min
tutorial
Tutorial e exemplos de funções e métodos de lista do Python
tutorial
Python Copy List: O que você deve saber

Allan Ouko
7 min
tutorial