Preobrat seznama ali matrike je običajna programska naloga. Obstaja veliko primerov, ko boste morda morali podatke predstaviti v obratnem vrstnem redu, na primer pri razvrščanju seznama.
Kako lahko obrnete seznam ali matriko s Pythonom? V tem članku se boste naučili različnih pristopov.
Ustvarite kopijo z zanko for
Medtem Pythonova zanka za je bolj podrobno, v nekaterih primerih je morda priročno. Na primer, zagotavlja večjo prilagodljivost pri izvajanju kompleksne logike na nekaterih točkah obratne operacije.
Pri uporabi vdolbine za zanko, je običajen pristop ponavljanje po izvirnem seznamu v obratnem vrstnem redu. Začenši s končnim elementom, vsaka ponovitev nato doda prejšnji element na nov seznam.
Glede na primer seznama celih števil med enim in devetim, tukaj je opisano, kako obrniti matriko z uporabo zamaknjenega za zanka:
jeziki = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Ustvarite prazen seznam za shranjevanje obrnjenega niza:
reversed_list = []# Odštejte eno od dolžine izvirnega niza, da začnete od zadnjega indeksa:
reduktor = len (jeziki)-1# Obrnite seznam znotraj zanke for:
za i v jezikih:
reversed_list.append (jeziki[reducer]) # Rezultat dodajte na prazen seznam
reduktor -=1 # Zmanjšajte indeks za eno pri vsaki ponovitvi z uporabo reduktorja
natisni (reversed_list)
Izhod:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Obrnite seznam ali matriko z uporabo razumevanja seznama
A razumevanje seznama ustvari krajšo kodo. In ni potrebe po začasni spremenljivki, ker razumevanje seznama deluje na seznamu, ki je na mestu.
Za izvedbo prejšnje operacije z uporabo razumevanja seznama:
reduktor = len (jeziki)
# Zmanjšaj indeks znotraj funkcije obsega z uporabo zanke for v razumevanju seznama
Reversed_list = [jeziki[reducer] za reduktor v obsegu (reducer -1,-1,-1)]
natisni (Reversed_list)
Izhod:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Uporabite Operator rezine
Operator rezine seznama je precej preprost, čeprav ima nekaj omejitev. Na primer, morda ne boste mogli prilagoditi izhoda, kot bi pri uporabi a za zanka.
Takole lahko obrnete seznam z operaterjem rezine:
jeziki = [1, 2, 3, 4, 5, 6, 7, 8, 9]
rev_list = jeziki[::-1]
natisni (rev_list)
Izhod:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
The [::-1] sintaksa je pametna bližnjica, ki povzroči obrnjen seznam. Dejansko pomeni "kopiraj vsak element seznama, začenši od konca in šteje nazaj" - torej "obrni"!
Uporabite povratno metodo matrike
To je še ena metoda, ki deluje na mestu: spremeni izvirno matriko. To je lahko pomanjkljivost, saj prejšnjega seznama ne morete obdržati za druge operacije.
Tukaj je, kako obrniti matriko z uporabo povratne metode:
jeziki = [1, 2, 3, 4, 5, 6, 7, 8, 9]
languages.reverse()
tisk (jeziki)
Izhod:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Uporabite obrnjeno funkcijo
Obrnjena funkcija ponovi seznam, matriko ali katero koli drugo zaporedje in vrne njegovo obrnjeno kopijo. Vendar pa morate obrnjen izhod izrecno deklarirati kot seznam.
Takole deluje:
jeziki = [1, 2, 3, 4, 5, 6, 7, 8, 9]
natisni (seznam (obrnjeno (jeziki)))
Izhod:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Postanemo ustvarjalni z nizi
Nizi ali seznami so običajni načini za shranjevanje podatkov. Glede na vaš cilj boste morda želeli stranki predstaviti podatke v obratnem vrstnem redu. Eden od načinov za to je, da obrnete matriko ali seznam, preden ga upodabljate. Kot ste videli, obstaja nekaj načinov, kako obrniti seznam v Pythonu. Izberite tisto, kar vam najbolj ustreza in je v skladu z vašo logiko za določeno težavo.
Morda boste želeli videti tudi, kako obrniti matriko v drugih programskih jezikih, da boste bolje razumeli logiko ozadja.
Kako obrniti matriko v C++, Python in JavaScript
Preberite Naprej
Povezane teme
- Programiranje
- Programiranje
- Python
- algoritmi
O avtorju
Idowu je navdušen nad vsemi pametnimi tehnologijami in produktivnostjo. V prostem času se igra s kodiranjem in, ko mu je dolgčas, preklopi na šahovnico, rad pa se občasno odmakne od rutine. Njegova strast, da ljudem pokaže pot okoli sodobne tehnologije, ga motivira, da piše več.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!
Kliknite tukaj, da se naročite