Ordenar listas
Aviso: Este post foi traduzido para o português usando um modelo de tradução automática. Por favor, me avise se encontrar algum erro.
Suponhamos que temos uma lista desordenada
list = [1, 4, 7, 2, 5, 8, 3, 6, 9]print(list)
[1, 4, 7, 2, 5, 8, 3, 6, 9]
E que queremos ordená-la, então usamos o método sort()
list.sort()print(list)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
O problema do método sort()
é que ele modifica a lista original, se voltarmos a imprimir a lista vemos que ela está ordenada, e não temos a original.
print(list)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Voltamos a criar a lista original
list = [1, 4, 7, 2, 5, 8, 3, 6, 9]print(list)
[1, 4, 7, 2, 5, 8, 3, 6, 9]
Para ordenar uma lista sem modificá-la, podemos usar a função sorted()
print(sorted(list))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Se agora voltarmos a imprimir a lista original, veremos que não mudou.
print(list)
[1, 4, 7, 2, 5, 8, 3, 6, 9]
O mesmo ocorre se a quisermos ordenar em ordem inversa, podemos usar o método .reverse()
list.reverse()print(list)
[9, 6, 3, 8, 5, 2, 7, 4, 1]
Se imprimirmos a lista, vemos que está ordenada em ordem inversa e não como a tínhamos no início.
print(list)
[9, 6, 3, 8, 5, 2, 7, 4, 1]
Voltamos a criar a lista original
list = [1, 4, 7, 2, 5, 8, 3, 6, 9]print(list)
[1, 4, 7, 2, 5, 8, 3, 6, 9]
Se queremos ordenar uma lista sem modificá-la, usamos novamente a função sorted()
, mas com o argumento reverse=True
print(sorted(list, reverse=True))
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Se agora imprimirmos a lista original, vemos que ela não mudou.
print(list)
[1, 4, 7, 2, 5, 8, 3, 6, 9]