Paano Pagbukud-bukurin ang Mga Listahan sa Python

How Sort Lists Python



Saklaw ng artikulong ito ang isang gabay sa pag-uuri ng mga listahan sa Python. Ang isang bagay sa listahan ng Python ay isang koleksyon ng isa o higit pang mga pinaghiwalay na mga item na kuwit. Ito ay isang umuulit na bagay at ang mga elemento nito ay maaaring ma-access sa pamamagitan ng pag-ulit sa listahan gamit ang mga loop statement at iba pang mga expression. Maaari mong pag-uri-uriin ang isang listahan ng Python gamit ang mga nakaayos at nakaayos na pamamaraan, pareho silang ipinaliwanag sa artikulo. Ang lahat ng mga sample ng code sa artikulong ito ay nasubok sa Python 3.9.5 sa Ubuntu 21.04.

Pag-uuri ng Paraan

Ang uri ng pag-uuri ay nag-uuri ng listahan sa lugar. Sa madaling salita, babaguhin nito ang listahan ng bagay na iyong uuriin at ayusin muli ang elemento nito. Kung hindi mo kinakailangan ang orihinal na listahan at huwag isipin ang listahan na binabago ang pagkakasunud-sunod ng mga elemento nang nasa lugar, ito ang pinaka mahusay na pamamaraan sa Python upang pag-uri-uriin ang isang listahan. Isaalang-alang ang halimbawang ito:







ang= [2, 8, 6, 4]

angpag-uri-uriin()

mag-print (ang)

Matapos patakbuhin ang sample ng code sa itaas, dapat mong makuha ang sumusunod na output:



[2, 4, 6, 8]

Ang unang pahayag sa sample ng code ay tumutukoy sa isang listahan. Susunod, ang pamamaraan ng pag-uuri ay tinatawag sa listahan. Kapag nai-print mo ang listahan, makikita mong nabago ang order ng orihinal na listahan.



Bilang default, ang Python ay nag-uuri ng isang listahan sa pataas na pagkakasunud-sunod. Kung nais mong pag-uri-uriin ang isang listahan sa pababang pagkakasunud-sunod, gumamit ng pabalik na pamamaraan, tulad ng ipinakita sa sample ng code sa ibaba:





ang= [2, 8, 6, 4]

angpag-uri-uriin()

angbaligtarin()

mag-print (ang)

Matapos patakbuhin ang sample ng code sa itaas, dapat mong makuha ang sumusunod na output:

[8, 6, 4, 2]

Binabago din ng pabaliktad na pamamaraan ang isang listahan ng Python sa lugar nang hindi lumilikha ng isang bagong listahan.



Kung ang iyong listahan ay naglalaman ng mga elemento ng string, ang pagtawag sa paraan ng pag-uuri dito ay mag-oorder nito ayon sa alpabeto kung saan ang mga simbolo at numero ay inuutos muna. Tingnan ang sample ng code sa ibaba:

ang= ['s', 'to', 'Sa', '4', '#']

angpag-uri-uriin()
mag-print (ang)

Matapos patakbuhin ang sample ng code sa itaas, dapat mong makuha ang sumusunod na output:

['#', '4', 'to', 's', 'Sa']

Maaari mo ring gamitin ang pabalik na pamamaraan sa isang listahan na naglalaman ng mga elemento ng string.

ang= ['s', 'to', 'Sa', '4', '#']

angpag-uri-uriin()

angbaligtarin()

mag-print (ang)

Matapos patakbuhin ang sample ng code sa itaas, dapat mong makuha ang sumusunod na output:

['Sa', 's', 'to', '4', '#']

Pinagbukud-bukod na Paraan

Ang uri ng pagkakasunud-sunod ay nag-uuri din ng isang listahan ng Python, sa parehong paraan tulad ng paraan ng pag-uuri. Gayunpaman, sa halip na baguhin ang orihinal na listahan, nagbabalik ito ng isang bagong listahan upang ang iyong orihinal na listahan ay naiwang hindi nagalaw kung sakaling gusto mo itong magamit muli. Isaalang-alang ang code sa ibaba:

listahan1= ['s', 'to', 'Sa', '4', '#']

listahan2= pinagsunod-sunod(listahan1)

mag-print (listahan1,listahan2)

Matapos patakbuhin ang sample ng code sa itaas, dapat mong makuha ang sumusunod na output:

['s', 'to', 'Sa', '4', '#'] ['#', '4', 'to', 's', 'Sa']

Maaari mong makita sa output na list1 ay buo at ang list2 ngayon ay may pinagsunod-sunod na mga elemento. Maaari mo ring gamitin ang pabalik na pamamaraan sa list2 upang baguhin ang pamamaraan ng pag-order.

Reverse Argument

Maaari mong gamitin ang reverse argument bilang isang kahalili upang baligtarin ang pag-andar sa parehong uri at pag-uuri ng mga pamamaraan upang makakuha ng isang pinagsunod-sunod na listahan sa pababang pagkakasunud-sunod. Ibigay lamang ito ng isang Tunay na halaga upang mabago ang pagkakasunud-sunod ng pag-uuri:

listahan1= ['s', 'to', 'Sa', '4', '#']

listahan2= pinagsunod-sunod(listahan1,baligtarin=Totoo)

mag-print (listahan1,listahan2)

Matapos patakbuhin ang sample ng code sa itaas, dapat mong makuha ang sumusunod na output:

['s', 'to', 'Sa', '4', '#'] ['Sa', 's', 'to', '4', '#']

Paggamit ng Key Function upang Tukuyin ang Iyong Sariling Lohika para sa Pag-uuri ng Mga Elemento ng isang Listahan

Sa parehong pamamaraan ng pag-uuri at pinagsunod-sunod, maaari mong tukuyin ang isang karagdagang key argument na tumatagal ng isang matatawag na pagpapaandar bilang halaga nito. Ang key argument na ito ay maaaring italaga ng isang mayroon nang pag-andar mula sa built-in na mga module ng Python o maaari mong ibigay ang iyong sariling pag-andar gamit ang pasadyang lohika. Tingnan ang sample ng code sa ibaba:

listahan1= ['abcde', 'xyz', 'ijkl']

listahan2= pinagsunod-sunod(listahan1,susi=len)

mag-print (listahan1,listahan2)

listahan1.pag-uri-uriin(susi=len)

mag-print (listahan1)

Matapos patakbuhin ang sample ng code sa itaas, dapat mong makuha ang sumusunod na output:

['abcde', 'xyz', 'ijkl'] ['xyz', 'ijkl', 'abcde']

['xyz', 'ijkl', 'abcde']

Inilalarawan ng sample ng code ang paggamit ng pangunahing argumento sa parehong inayos at uri ng mga pamamaraan. Ang pagpapaandar na ibinigay dito ay tinatawag na len na tumutukoy sa haba ng isang bagay na string o isang umuulit. Ang pag-andar o tinatawag na dapat ay orihinal na tumagal lamang ng isang argument. Italaga mo ito sa pangunahing argumento nang hindi gumagamit ng braces. Ang natatawag na pagpapaandar na ibinigay sa key argument ay tinatawag sa bawat elemento ng listahan. Ang mga halagang ibinalik mula sa natatawag na pamamaraang ito ay ginagamit bilang isang susi para sa pag-uuri ng listahan. Samakatuwid, ang pagbibigay ng pagpapaandar ng len sa pangunahing argumento ay nagkakasama ng mga elemento ng isang listahan sa pagkakasunud-sunod ng kanilang haba, iyon ay, mula sa pinakamaikli hanggang sa pinakamahaba. Tulad ng nakasaad nang mas maaga, maaari mong palaging gamitin ang pabalik na pamamaraan upang baligtarin ang pamamaraan ng pag-uuri.

Maaari mo ring gamitin ang iyong sariling pasadyang pagpapaandar o mga pag-andar na one-liner lambda na nagbabalik ng halaga ng isang solong pagpapahayag. Tingnan ang sample ng code sa ibaba kung saan ang isang listahan ay mayroong mga tuple ng kasalukuyang imbentaryo ng mga crate ng prutas:

listahan1= [('mangga', 99), ('orange', 51), ('saging', 76)]

listahan1.pag-uri-uriin(susi=lambdaimbentaryo: imbentaryo[1])

mag-print (listahan1)

Matapos patakbuhin ang sample ng code sa itaas, dapat mong makuha ang sumusunod na output:

[('orange', 51), ('saging', 76), ('mangga', 99)]

Ang pagpapaandar ng lambda ay ibinibigay ng isang imbentaryo ng argumento, na kung saan ay bawat elemento ng listahan sa tuple form. Pagkatapos ay ibabalik nito ang pangalawang elemento ng bawat tuple bilang key (sa index 1). Ang pag-uuri ng pag-uuri pagkatapos ay pag-uuri ng lahat ng mga tuple sa pamamagitan ng pangalawang elemento nito sa pataas na pagkakasunud-sunod. Maaari mo ring gamitin ang reverse function o ang reverse argument sa end na resulta upang ma-reverse ang pagkakasunud-sunod ng pag-uuri.

Konklusyon

Ito ang ilang mga paraan gamit ang kung saan maaari mong ayusin ang mga nilalaman ng isang umuulit na listahan sa Python. Pinapayagan ka ng key argument na sumulat ng iyong sariling pasadyang lohika ng pag-uuri, na angkop para sa mga application na maaaring may iba't ibang mga pangangailangan kaysa sa built-in na mga pamamaraan ng pag-uuri.