Como dividir uma lista em Python (índices, etapas e reversão)
Aprenda como dividir listas em Python usando a poderosa sintaxe de colchetes. Argumentos mestres de início, parada e etapa, indexação negativa e listas reversas.
Visão geral
O fatiamento é um dos recursos mais intuitivos e poderosos do Python, permitindo extrair subconjuntos de uma lista, tupla ou string com sintaxe limpa e concisa. Em vez de escrever loops detalhados para copiar elementos específicos de uma lista, a notação de fatia do Python permite especificar um intervalo de índices entre colchetes.
A sintaxe completa para fatiamento de lista é `my_list[start:stop:step]`. O índice `start` é inclusivo, o índice `stop` é exclusivo e `step` define o incremento entre os elementos (padrão 1). Se você omitir `start`, o padrão do Python é o início da lista. Se você omitir `stop`, o padrão do Python será o final da lista. Isso torna a extração de porções de coleções altamente expressiva.
O fatiamento também é extremamente versátil porque suporta índices negativos. Um índice de início ou parada negativo conta regressivamente a partir do final da lista (onde `-1` representa o último item). Ao definir um valor de passo negativo, como `my_list[::-1]`, você pode recuperar rapidamente uma cópia invertida da lista. Compreender os intervalos de fatias é essencial para uma extração limpa de dados.
Saída de código e execução
Este script demonstra o fatiamento de lista usando diferentes intervalos de início, parada, etapas, indexação negativa e reversão de lista.
numbers = [0, 10, 20, 30, 40, 50, 60, 70, 80]
# 1. Basic slicing: elements from index 2 up to (but excluding) 6
subset = numbers[2:6]
print("Subset [2:6]:", subset)
# 2. Omitting indices: start to index 4, and index 5 to end
first_five = numbers[:5]
last_four = numbers[5:]
print("First five [:5]:", first_five)
print("Last four [5:]:", last_four)
# 3. Using a step parameter: get every second element
every_second = numbers[::2]
print("Every second [::2]:", every_second)
# 4. Negative indexing: get the last three elements
last_three = numbers[-3:]
print("Last three [-3:]:", last_three)
# 5. Reverse the list using step=-1
reversed_numbers = numbers[::-1]
print("Reversed list [::-1]:", reversed_numbers)Subset [2:6]: [20, 30, 40, 50]
First five [:5]: [0, 10, 20, 30, 40]
Last four [5:]: [50, 60, 70, 80]
Every second [::2]: [0, 20, 40, 60, 80]
Last three [-3:]: [60, 70, 80]
Reversed list [::-1]: [80, 70, 60, 50, 40, 30, 20, 10, 0]Implementação passo a passo
- Use list[start:stop] para extrair elementos do índice start até, mas não incluindo, stop.
- Omita os índices de início ou parada (por exemplo, lista[:4] ou lista[4:]) para cortar o limite da lista.
- Passe um terceiro argumento dentro do colchete list[::step] para pular elementos em intervalos regulares.
- Use índices negativos para contar os elementos regressivamente a partir do final da coleção.
Perguntas frequentes
O fatiamento modifica a lista original?
Não, o fatiamento da lista retorna uma cópia superficial do intervalo solicitado, deixando a lista original totalmente inalterada.
O que acontece se os índices de fatia estiverem fora dos limites?
Ao contrário de acessar um único índice que gera um IndexError, o fatiamento é indulgente e simplesmente limita o intervalo nos limites da lista, retornando uma lista vazia se nenhum elemento estiver no intervalo.
Tópicos Relacionados
Aprenda como copiar uma lista em Python. Explore o fatiamento de lista, o método copy(), os construtores de lista e domine a diferença entre cópias superficiais e profundas.
Como reverter uma string em PythonAprenda como reverter uma string em Python usando fatiamento, a função reversed() e concatenação de loop com exemplos de código visual.
Como encontrar o comprimento de uma lista em PythonAprenda como encontrar o comprimento de uma lista em Python usando a função len(). Entenda a complexidade do tempo O(1) e as contagens de verificação.
Recursos Python recomendados
Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.
Variáveis e tipos de dados Python explicados
Entenda as variáveis do Python e os principais tipos de dados (strings, inteiros, flutuantes, booleanos). Um guia completo para iniciantes sobre atribuição de memória em Python.
Folha de referências de métodos de lista Python
Guia de referência rápida para operações de lista Python. Domine a adição, inserção, remoção, classificação e fatiamento de elementos.
Python vs JavaScript: qual linguagem de programação é a melhor?
Uma comparação abrangente entre Python e JavaScript. Explore diferenças de sintaxe, desempenho, casos de uso (backend versus frontend) e exemplos de codificação.