Kupanga orodha katika Python: tofauti kati ya iliyopangwa na iliyopangwa

Biashara

Kuna njia mbili za kupanga orodha katika kupanda au kushuka kwa mpangilio katika Python.

  • sort()
  • sorted()

Ikiwa unataka kupanga kamba au tuple, tumia sorted().

Habari ifuatayo imetolewa hapa.

  • Mbinu ya orodha ya aina ambayo hupanga orodha asilisort()
  • Tengeneza orodha mpya iliyopangwa, kitendakazi kilichojengewa ndani: .sorted()
  • Jinsi ya kupanga kamba na tuples

Kupanga orodha asili, njia ya orodha ya aina: sort()

sort() ni njia ya aina ya orodha.

Mchakato wa uharibifu ambao orodha ya asili yenyewe inaandikwa upya.

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

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

Kumbuka kwamba sort() hairudishi Hakuna.

print(org_list.sort())
# None

Chaguo-msingi ni mpangilio wa kupanda. Ikiwa unataka kupanga kwa mpangilio wa kushuka, weka hoja kinyume kiwe kweli.

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

Tengeneza orodha mpya iliyopangwa, kitendakazi kilichojengwa ndani: sorted()

sorted() ni kazi iliyojengewa ndani.

Hurejesha orodha iliyopangwa wakati orodha itakayopangwa imebainishwa kama hoja. Huu ni mchakato usio na uharibifu ambao haubadilishi orodha asili.

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]

Kama ilivyo kwa sort(), chaguo-msingi ni mpangilio wa kupanda. Ikiwa unataka kupanga kwa mpangilio wa kushuka, weka hoja kinyume kiwe kweli.

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]

Jinsi ya kupanga kamba na tuples

Kwa kuwa nyuzi na nakala hazibadiliki, hakuna sort() njia inayopatikana ya kuandika upya kitu asilia.

Kwa upande mwingine, hoja ya kitendakazi cha sorted(), ambayo hutoa orodha iliyopangwa kama kitu kipya, inaweza kuwa kamba au tuple pamoja na orodha. Walakini, kwa kuwa sorted() inarudisha orodha, inahitaji kubadilishwa kuwa kamba au tuple.

Kupanga masharti

Wakati mfuatano umebainishwa kama hoja ya kukokotoa sorted(), orodha inarudishwa ambapo kila herufi ya mfuatano uliopangwa huhifadhiwa kama kipengele.

org_str = 'cebad'

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

Ili kuunganisha orodha ya mifuatano kwenye mfuatano mmoja, tumia mbinu ya join().

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

Ikiwa unataka kupanga kwa mpangilio wa kushuka, weka hoja kinyume kiwe kweli.

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

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

Saizi ya mfuatano imedhamiriwa na nukta ya msimbo wa Unicode (msimbo wa herufi) wa mhusika.

Kupanga nakala

Tuples ni sawa na masharti; kubainisha tuple kama hoja ya sorted() chaguo za kukokotoa hurejesha orodha iliyopangwa ya vipengele.

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]

Ili kubadilisha orodha kuwa nakala, tumia tuple().

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

Ikiwa unataka kupanga kwa mpangilio wa kushuka, weka hoja kinyume kiwe kweli.

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