Ordenar unha lista en Python: a diferenza entre ordenada e ordenada

Negocios

Hai dúas formas de ordenar unha lista en orde ascendente ou descendente en Python.

  • sort()
  • sorted()

Se queres ordenar unha cadea ou tupla, usa sorted().

A seguinte información ofrécese aquí.

  • Un método de lista de tipos que ordena a lista orixinalsort()
  • Xera unha nova lista ordenada, función integrada: .sorted()
  • Como ordenar cadeas e tuplas

Ordenando a lista orixinal, un método de tipo lista: sort()

sort() é un método de tipo de lista.

Un proceso destrutivo no que se reescribe a propia lista orixinal.

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

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

Teña en conta que sort() devolve None.

print(org_list.sort())
# None

O predeterminado é a orde ascendente. Se queres ordenar en orde descendente, establece o argumento inverso en verdadeiro.

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

Xera unha nova lista ordenada, función integrada: sorted()

sorted() é unha función integrada.

Devolve unha lista ordenada cando a lista a ordenar se especifica como argumento. Este é un proceso non destrutivo que non cambia a lista orixinal.

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]

Do mesmo xeito que con sort(), o predeterminado é a orde ascendente. Se queres ordenar en orde descendente, establece o argumento inverso en 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 cadeas e tuplas

Dado que as cadeas e as tuplas son inmutables, non hai un método sort() dispoñible para reescribir o obxecto orixinal.

Por outra banda, o argumento da función sorted(), que xera unha lista ordenada como un novo obxecto, pode ser unha cadea ou tupla así como unha lista. Non obstante, xa que sorted() devolve unha lista, debe converterse nunha cadea ou tupla.

Clasificación de cadeas

Cando se especifica unha cadea como argumento da función sorted(), devólvese unha lista na que cada carácter da cadea ordenada se almacena como 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 unha lista de cadeas nunha única cadea, use o método join().

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

Se queres ordenar en orde descendente, establece o argumento inverso en verdadeiro.

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 tamaño dunha cadea está determinado polo punto de código Unicode (código de carácter) do carácter.

Ordenación de tuplas

As tuplas son iguais que as cordas; especificando unha tupla como argumento da función sorted() devolve unha 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 unha lista nunha tupla, use tuple().

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

Se queres ordenar en orde descendente, establece o argumento inverso en verdadeiro.

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)
Copied title and URL