Python Reverse List – Revertendo uma matriz em Python
Neste artigo, você aprenderá como reverter uma lista em Python.
Em primeiro lugar, apresentarei listas em Python e você aprenderá a escrevê-las. Depois disso, você verá três maneiras diferentes de reverter os itens da lista dentro de qualquer lista que você criar.
Aqui está o que vamos abordar:
- O que é uma lista em Python e como criar uma
- Como reverter itens em uma lista usando o método
.reverse()
- Como reverter itens em uma lista usando a função
reversed()
- Como reverter itens em uma lista usando fatiamento
O que é uma lista em Python? Como escrever uma lista no exemplo Python
As listas são um tipo de dados incorporado em Python e uma das estruturas de dados mais poderosas.
Você pode pensar neles como contêineres para armazenar várias coleções (normalmente relacionadas) de itens sob o mesmo nome de variável.
Para criar uma lista em Python, você precisa:
- Dê um nome à lista.
- Use o operador de atribuição,
=
. - Inclua
0
ou mais itens de lista entre colchetes,[]
– e certifique-se de separar cada item da lista com uma vírgula.
Os itens de lista podem ser homogêneos, o que significa que são do mesmo tipo.
Por exemplo, você pode criar uma lista apenas de números ou uma lista de apenas cadeias de caracteres (ou texto).
Aqui está como você criaria uma lista de nomes:
names = ["Johny", "Lenny", "Jimmy", "Timmy"]
# print list contents to the console
print(names)
# check data type for names using the type() function
print(type(names))
# output
# ['Johny', 'Lenny', 'Jimmy', 'Timmy']
# <class 'list'>
O exemplo acima criou uma lista de nomes com quatro valores: Johny
, Lenny
, Jimmy
e Timmy
.
Você também pode criar apenas uma lista de inteiros (ou números inteiros):
my_numbers = [1, 2, 3, 4, 5]
# print list contents to the console
print(my_numbers)
# check the data type for my_numbers using the type() function
print(type(my_numbers))
# output
# [1, 2, 3, 4, 5]
# <class 'list'>
Os itens de lista também podem ser heterogêneos, o que significa que todos podem ser de diferentes tipos de dados.
# a list containing strings, integers, and floats (or numbers with a decimal point)
my_information = ["John", "Doe", 34, "London", 1.76]
print(my_information)
# output
# ['John', 'Doe', 34, 'London', 1.76]
Isso é o que diferencia as listas das matrizes.
Ao contrário das matrizes, que armazenam apenas itens do mesmo tipo, as listas permitem mais flexibilidade.
As matrizes exigem que os itens sejam apenas do mesmo tipo de dados, enquanto as listas não.
As listas são mutáveis, o que significa que são mutáveis e dinâmicas – você pode atualizar, excluir e adicionar novos itens de lista à lista a qualquer momento ao longo da vida útil do programa.
Como reverter itens em uma lista usando o método .reverse()
O método .reverse()
em Python é um método interno que inverte a lista no local.
Inverter a lista no local significa que o método modifica e altera a lista original. Ele não cria uma nova lista que é uma cópia do original, mas com os itens da lista em ordem inversa.
Esse método é útil quando você não está preocupado em preservar a ordem da lista original.
A sintaxe geral do método .reverse()
é semelhante à seguinte:
list_name.reverse()
O método .reverse()
não aceita argumentos e não tem um valor de retorno – apenas atualiza a lista existente.
Veja como você usaria o método .reverse()
para reverter uma lista de inteiros:
#original list
my_numbers = [1, 2, 3, 4, 5]
# reverse the order of items in my_numbers
my_numbers.reverse()
# print contents of my_numbers to the console
print(my_numbers)
# output
# [5, 4, 3, 2, 1]
No exemplo acima, a ordem dos itens da lista na lista original é invertida e a lista original é modificada e atualizada.
E aqui está como você usaria o método em uma lista de nomes:
names = ["Johny", "Lenny", "Jimmy", "Timmy"]
# reverse the order of items in names
names.reverse()
# print contents of names to the console
print(names)
# output
# ['Timmy', 'Jimmy', 'Lenny', 'Johny']
Como reverter itens em uma lista usando a função reversed()
Esta função é útil quando você deseja acessar os elementos individuais da lista na ordem inversa.
A sintaxe geral para a função reversed()
é semelhante a esta:
reversed(list_name)
A função embutida reversed()
em Python retorna um iterador reverso – um objeto iterável que é usado para recuperar e percorrer todos os elementos da lista em ordem inversa.
Retornar um objeto iterável significa que a função retorna os itens da lista na ordem inversa. Não inverte a lista em vigor. Isso significa que ele não modifica a lista original, nem cria uma nova lista que é uma cópia da original, mas com os itens da lista em ordem inversa.
my_numbers = [1, 2, 3, 4, 5]
my_numbers_reversed = reversed(my_numbers)
# print original list
print(my_numbers)
# check the data type of my_numbers_reversed using the type() function
print(type(my_numbers_reversed))
# output
# [1, 2, 3, 4, 5]
# <class 'list_reverseiterator'>
Use a função reversed()
com um loop for
para iterar pelos itens da lista em ordem inversa. (Se você precisar de uma atualização para
loops em Python, leia este artigo)
my_numbers = [1, 2, 3, 4, 5]
for number in reversed(my_numbers):
print(number)
# output
# 5
# 4
# 3
# 2
# 1
Se você imprimir o conteúdo da lista original no console, verá que a ordem dos itens é preservada e a lista original não é modificada:
my_numbers = [1, 2, 3, 4, 5]
for number in reversed(my_numbers):
print(number)
print(my_numbers)
# output
# 5
# 4
# 3
# 2
# 1
# [1, 2, 3, 4, 5]
Isso ocorre porque a função reversed()
usa uma lista como um argumento e retorna um iterador na ordem inversa.
Ele não fará nenhuma alteração na lista existente e não criará uma nova.
Esta função não reverte a lista permanentemente, apenas temporariamente durante a execução do loop for
na lista original.
Mas e se você quiser criar uma nova lista que será uma cópia da original, mas com os itens em ordem inversa usando a função reversed(
)?
Você pode passar o resultado da operação reversed()
como um argumento para a função list(),
que converterá o iterador em uma lista e armazenará o resultado final em uma variável:
my_numbers = [1, 2, 3, 4, 5]
my_numbers_reversed = list(reversed(my_numbers))
# original list
print(my_numbers)
# new list, which is a copy of the original one with list items in reverse order
print(my_numbers_reversed)
# output
# [1, 2, 3, 4, 5]
# [5, 4, 3, 2, 1]
Como reverter itens em uma lista usando fatiamento
Outra maneira de reverter listas em Python é usando fatiamento.
O fatiamento é uma das maneiras mais rápidas de reverter uma lista em Python e oferece uma sintaxe concisa. Dito isto, é mais um recurso intermediário a avançado e não tão amigável para iniciantes em comparação com o método .reverse(),
que é mais intuitivo e autodescritivo.
Vamos analisar uma rápida visão geral de como o fatiamento funciona.
A sintaxe geral é semelhante à seguinte:
list_name[start:stop:step]
Vamos detalhar:
start
é o índice inicial da fatia, inclusive.
A indexação em Python e Ciência da Computação começa em 0
.
O valor padrão de start
é 0
e captura o primeiro item do início da lista.
Se você quiser obter o primeiro item do final da lista, o valor seria -1
.
my_numbers = [1,2,3,4,5,]
slicing_my_numbers = my_numbers[-1:]
print(slicing_my_numbers)
# output
# [5]
stop
é a posição final do índice e onde você deseja que o fatiamento pare, não inclusive – ele não inclui o elemento localizado no índice especificado.
Por exemplo, se você quiser fatiar a lista desde o início até o item com o índice 3
, aqui está o que você faria:
# the item at index 3 is the integer 4
my_numbers = [1,2,3,4,5,]
slicing_my_numbers = my_numbers[:3]
# the integer 4 is not included in the result
print(slicing_my_numbers)
# output
# [1, 2, 3]
step
é o valor de incremento, com o valor padrão sendo 1
.
Agora, quando se trata de usar fatiamento para reverter uma lista, você precisaria usar a sintaxe do operador de fatiamento reverso [::-1
]. Isso define a etapa como -1
e obtém todos os itens na lista na ordem inversa.
# original list
my_numbers = [1,2,3,4,5]
# reversing original list
my_numbers_reversed = my_numbers[::-1]
# print original list
print(my_numbers)
# print new list with the items from the original list in reverse order
print(my_numbers_reversed)
# output
# [1, 2, 3, 4, 5]
# [5, 4, 3, 2, 1]
O operador de fatiamento não modifica a lista original. Em vez disso, ele retorna uma nova lista, que é uma cópia dos itens da lista original em ordem inversa.
Conclusão
E lá está! Agora você sabe como reverter qualquer lista em Python.
Espero que este tutorial tenha sido útil.
Para saber mais sobre a linguagem de programação Python, confira a certificação Python do freeCodeCamp.
Você vai começar do básico e aprender de uma forma interativa e amigável para iniciantes. Você também construirá cinco projetos no final para colocar em prática e ajudar a reforçar o que aprendeu.
Obrigado pela leitura e feliz codificação!