Inverter uma lista em Python
-
Utilize
range()
para reverter uma lista em Python -
Inverter uma lista pelo
while
Loop em Python - Inverter uma lista utilizando o operador de fatias em Python
-
Utilize
reversed()
para reverter uma lista em Python
Este tutorial irá demonstrar diferentes formas de como reverter uma lista em Python.
A inversão de lista é um dos problemas mais comuns de programação inicial que se experimenta quando se aprende a programar. Em Python, existem várias formas fáceis de reverter uma lista.
Utilize range()
para reverter uma lista em Python
range()
é uma função integrada Python que produz uma lista de uma gama de números.
Sintaxe de amplitude()
range(start, stop, step)
Esta função tem 3 argumentos; o principal argumento exigido é o segundo argumento stop
, um número que denota onde se quer parar. Há 2 argumentos opcionais, start
especifica onde se deve começar a contar e step
especifica o aumento da sequência.
Note que stop
terá um offset de 1, uma vez que a contagem começa em 0
. Para criar uma lista que pare em 5 utilizando range()
, o valor de paragem teria de ser 6.
numbers = list(range(6))
print(numbers)
Resultado:
[0, 1, 2, 3, 4, 5]
Para inverter esta lista, é necessário especificar os argumentos start
e step
.
O start
está definido em 5, enquanto o step
é -1
uma vez que queremos diminuir o intervalo em 1 de cada vez. O argumento stop
deve também ser definido para -1
, uma vez que queremos parar em 0
(uma vez que stop
tem um offset de 1).
numbers = list(range(5, -1, -1))
print(numbers)
Resultado:
[5, 4, 3, 2, 1, 0]
Inverter uma lista pelo while
Loop em Python
Declare uma lista de 10 números inteiros aleatórios que queremos criar uma nova lista em ordem inversa.
numbers = [66, 78, 2, 45, 97, 17, 34, 105, 44, 52]
Utilizar um laço de tempo sobre a lista para a produzir em ordem inversa. Primeiro, obter o tamanho da lista e deduzi-lo por 1 para apontar para o último elemento da lista. Vamos também declarar uma lista vazia para armazenar a nova versão invertida da lista anterior.
idx = len(numbers) - 1
newList = []
Agora utilize o loop while para iterar e armazene cada elemento da nova lista com cada iteração a diminuir idx
até atingir 0
.
while idx >= 0:
newList.append(numbers[idx])
idx = idx - 1
print(newList)
Resultado:
[52, 44, 105, 34, 17, 97, 45, 2, 78, 66]
Inverter uma lista utilizando o operador de fatias em Python
Se preferir não fazer um loop sobre a lista, então utilize o operador de slice
para diminuir o índice do array por 1.
Semelhante ao range()
, o operador da fatia aceita três argumentos: start
, stop
, e step
.
Deixe os dois primeiros argumentos em branco para que cubra toda a matriz e defina o valor do step
para -1
, para que comece com o fim do array e decretando-o por 1 de cada vez.
newList = numbers[::-1]
print(newList)
Resultado:
[52, 44, 105, 34, 17, 97, 45, 2, 78, 66]
Utilize reversed()
para reverter uma lista em Python
Outra forma fácil de inverter uma lista em Python é utilizar a função integrada reversed()
. Esta função aceita um argumento de lista e devolve um iterador da versão invertida da mesma lista.
Utilizando o mesmo exemplo numbers
acima, inverte a lista utilizando esta função. Não se esqueça de embrulhar a função com list()
para realmente armazenar o valor de retorno de revered()
numa lista.
newList = list(reversed(numbers))
print(newList)
Alternativamente, também pode utilizar um laço for
para iterar sobre a lista invertida e armazená-lo directamente em newList
.
newList = [num for num in reversed(numbers)]
print(newList)
O resultado de ambas as soluções será o mesmo.
[52, 44, 105, 34, 17, 97, 45, 2, 78, 66]
Em resumo, Python fornece uma forma simples de inverter uma lista, utilizando a função reversed()
. Também se pode inverter uma lista manualmente, fazendo um laço de for
ou while
. Python também tem um método fácil de inverter uma lista numa única linha, se se sentir confortável utilizando o operador da fatia.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn