Ordenar uma lista em Python: a diferença entre ordenado e ordenado

O negócio

Há duas maneiras de ordenar uma lista por ordem ascendente ou descendente em Python.

  • sort()
  • sorted()

Se quiser ordenar uma corda ou um tuple, use sort().

A seguinte informação é fornecida aqui.

  • Um método de lista de tipos que classifica a lista originalsort()
  • Gerar uma nova lista ordenada, função integrada: .sorted()
  • Como ordenar cordas e tufos

Classificar a lista original, um método de lista de tipos: sort()

sort() é um método do tipo lista.

Um processo destrutivo em que a própria lista original é reescrita.

org_list = [3, 1, 4, 5, 2]

org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]

Note-se que a sort() não devolve nenhuma.

print(org_list.sort())
# None

A ordem por defeito é ascendente. Se quiser ordenar por ordem decrescente, defina o argumento inverso para verdadeiro.

org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]

Gerar uma nova lista ordenada, função incorporada: ordenado()

classificado() é uma função integrada.

Devolve uma lista ordenada quando a lista a ser ordenada é especificada como um argumento. Este é um processo não destrutivo que não altera a lista original.

org_list = [3, 1, 4, 5, 2]

new_list = sorted(org_list)
print(org_list)
print(new_list)
# [3, 1, 4, 5, 2]
# [1, 2, 3, 4, 5]

Tal como com sort(), a ordem por defeito é ascendente. Se quiser ordenar por ordem decrescente, defina o argumento inverso para verdadeiro.

new_list_reverse = sorted(org_list, reverse=True)
print(org_list)
print(new_list_reverse)
# [3, 1, 4, 5, 2]
# [5, 4, 3, 2, 1]

Como ordenar cordas e tufos

Uma vez que as cordas e os tuplos são imutáveis, não existe nenhum método de tipo() disponível para reescrever o objecto original.

Por outro lado, o argumento da função sort(), que gera uma lista ordenada como um novo objecto, pode ser um fio ou um tuple, bem como uma lista. Contudo, uma vez que a função sorted() devolve uma lista, precisa de ser convertida para uma string ou tuple.

Classificar cordas

Quando uma cadeia é especificada como argumento da função sorted(), é devolvida uma lista na qual cada carácter da cadeia ordenada é armazenado como um elemento.

org_str = 'cebad'

new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']

Para concatenar uma lista de cordas numa única corda, usar o método join().

new_str = ''.join(new_str_list)
print(new_str)
# abcde

Se quiser ordenar por ordem decrescente, ponha o argumento em ordem inversa à verdade.

new_str = ''.join(sorted(org_str))
print(new_str)
# abcde

new_str_reverse = ''.join(sorted(org_str, reverse=True))
print(new_str_reverse)
# edcba

O tamanho de uma cadeia é determinado pelo ponto de código Unicode (código de caracteres) do carácter.

Classificar tuplos

Os tuplos são o mesmo que as cordas; especificar um tuple como argumento da função ordenada() devolve uma lista ordenada de elementos.

org_tuple = (3, 1, 4, 5, 2)

new_tuple_list = sorted(org_tuple)
print(org_tuple)
print(new_tuple_list)
# (3, 1, 4, 5, 2)
# [1, 2, 3, 4, 5]

Para converter uma lista para um tuple, usar tuple().

new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)

Se quiser ordenar por ordem decrescente, ponha o argumento em ordem inversa à verdade.

new_tuple = tuple(sorted(new_tuple_list))
print(new_tuple)
# (1, 2, 3, 4, 5)

new_tuple_reverse = tuple(sorted(new_tuple_list, reverse=True))
print(new_tuple_reverse)
# (5, 4, 3, 2, 1)