Nimekirja sorteerimine Pythonis: vahe sorteeritud ja sorteeritud vahel

Äri

Pythonis on kaks võimalust loendi sorteerimiseks kasvavas või kahanevas järjekorras.

  • sort()
  • sorted()

Kui soovite sorteerida stringi või tupli, kasutage sorteeritud().

Siin on esitatud järgmine teave.

  • Loenditüüpi meetod, mis sorteerib esialgse loendisort()
  • Uue sorteeritud nimekirja genereerimine, sisseehitatud funktsioon: .sorted()
  • Kuidas sorteerida stringid ja tuplid

Algse loendi sorteerimine, loenditüüpi meetod: sort()

sort() on loenditüüpi meetod.

Destruktiivne protsess, mille käigus kirjutatakse algne nimekiri ise ümber.

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

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

Pange tähele, et sort() tagastab None.

print(org_list.sort())
# None

Vaikimisi on kasvav järjekord. Kui soovite sorteerida kahanevas järjekorras, seadke argumendi reverse väärtuseks true.

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

Uue sorteeritud nimekirja genereerimine, sisseehitatud funktsioon: sorted()

sorted() on sisseehitatud funktsioon.

Tagastab sorteeritud loendi, kui argumendina on määratud sorteeritav loend. See on mittedestruktiivne protsess, mis ei muuda algset nimekirja.

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]

Nagu sort() puhul, on vaikimisi kasvav järjekord. Kui soovite sorteerida kahanevas järjekorras, seadke argumendi reverse väärtuseks true.

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]

Kuidas sorteerida stringid ja tuplid

Kuna stringid ja tuplid on muutumatud, ei ole algse objekti ümberkirjutamiseks saadaval meetodit sort().

Teisest küljest võib funktsiooni sorted(), mis genereerib uue objektina sorteeritud loendi, argumendiks olla nii string või tupel kui ka loend. Kuna aga sorted() tagastab loendi, tuleb see teisendada stringiks või tupliks.

Sorteerimine stringid

Kui funktsiooni sorteeritud() argumendiks on string, tagastatakse nimekiri, milles iga sorteeritud stringi märk on salvestatud elemendina.

org_str = 'cebad'

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

Stringide loendi ühendamiseks üheks stringiks kasuta meetodit join().

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

Kui soovite sorteerida kahanevas järjekorras, määrake argumendi reverse väärtuseks true.

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

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

Stringi suurus määratakse kindlaks tähemärgi Unicode-koodipunkti (tähemärgikoodi) järgi.

Tuppude sorteerimine

Tuplid on samad, mis stringid; kui määrata funktsiooni sorteeritud() argumendiks tupel, siis saadakse sorteeritud elementide loend.

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]

Loendi teisendamiseks tupliks kasuta funktsiooni tuple().

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

Kui soovite sorteerida kahanevas järjekorras, määrake argumendi reverse väärtuseks true.

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)