Å reversere en liste eller en matrise er en vanlig programmeringsoppgave. Det er mange tilfeller der du kanskje må presentere data i omvendt rekkefølge, for eksempel når du sorterer en liste.
Hvordan kan du snu en liste eller en matrise med Python? Du lærer de forskjellige tilnærmingene i denne artikkelen.
Lag en kopi med en for Loop
Samtidig som Python er for loop er mer detaljert, kan det være nyttig i noen tilfeller. For eksempel gir det mer fleksibilitet når du utfører kompleks logikk på noen punkter i omvendt operasjon.
Når du bruker en innrykket til loop, er den vanlige tilnærmingen å iterere gjennom den opprinnelige listen i omvendt rekkefølge. Fra og med det siste elementet, legger hver iterasjon deretter det forrige elementet til en ny liste.
Gitt en liste over heltall mellom én og ni som et eksempel, her er hvordan du reverserer en matrise ved å bruke en innrykket til Løkke:
språk = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Opprett en tom liste for å holde den omvendte matrisen:
reversed_list = []# Trekk en fra lengden på den opprinnelige matrisen for å starte fra den siste indeksen:
redusering = len (språk)-1# Snu listen i en for-løkke:
for jeg på språk:
reversed_list.append (languages[reducer]) # Legg resultatet til den tomme listen
redusering -=1 # Reduser indeksen med én ved hver iterasjon ved å bruke redusering
print (reversed_list)
Produksjon:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Reversere en liste eller en matrise ved å bruke listeforståelse
EN listeforståelse produserer kortere kode. Og det er ikke behov for en midlertidig variabel fordi listeforståelse fungerer på en liste på plass.
For å utføre forrige operasjon ved å bruke en listeforståelse:
redusering = len (språk)
# Reduser indeksen innenfor en rekkeviddefunksjon ved å bruke for loop i en listeforståelse
Reversed_list = [språk[redusering] for redusering innen rekkevidde (redusering -1,-1,-1)]
print (Reversed_list)
Produksjon:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Bruk Slice Operator
Listesnittoperatoren er ganske grei, selv om den har noen begrensninger. Det kan for eksempel hende at du ikke kan tilpasse utdataene slik du ville gjort når du bruker en til Løkke.
Slik snur du en liste ved å bruke skiveoperatoren:
språk = [1, 2, 3, 4, 5, 6, 7, 8, 9]
rev_list = språk[::-1]
print (rev_list)
Produksjon:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
De [::-1] syntaks er en smart snarvei som resulterer i en omvendt liste. Det betyr faktisk "kopier hvert element i listen, start fra slutten og tell bakover" - dvs. "reverser det"!
Bruk en Arrays omvendte metode
Dette er en annen metode som fungerer på plass: den modifiserer den originale matrisen. Dette kan være en mangel siden du ikke kan beholde den forrige listen for andre operasjoner.
Slik snur du en matrise ved å bruke den omvendte metoden:
språk = [1, 2, 3, 4, 5, 6, 7, 8, 9]
languages.reverse()
print (språk)
Produksjon:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Bruk den omvendte funksjonen
Den reverserte funksjonen itererer over en liste, matrise eller en hvilken som helst annen sekvens og returnerer den omvendte kopien. Du må imidlertid eksplisitt erklære den reverserte utgangen som en liste.
Slik fungerer det:
språk = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print (liste (omvendt (språk)))
Produksjon:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Bli kreativ med matriser
Matriser eller lister er vanlige måter å lagre data på. Avhengig av målet ditt, vil du kanskje presentere data for klienten i omvendt rekkefølge. En måte å gjøre dette på er å reversere matrisen eller listen før du gjengir den. Som du har sett, er det et par måter å invertere en liste i Python. Velg det som fungerer best for deg og samsvarer med logikken din for et spesifikt problem.
Det kan også være lurt å se hvordan du reverserer en matrise i andre programmeringsspråk for å forstå bakgrunnslogikken bedre.
Hvordan reversere en matrise i C++, Python og JavaScript
Les Neste
Relaterte temaer
- Programmering
- Programmering
- Python
- Algoritmer
Om forfatteren
Idowu er lidenskapelig opptatt av alt smart teknologi og produktivitet. På fritiden leker han med koding og bytter til sjakkbrettet når han kjeder seg, men han elsker også å bryte ut av rutinene en gang i blant. Hans lidenskap for å vise folk veien rundt moderne teknologi motiverer ham til å skrive mer.
Abonner på vårt nyhetsbrev
Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!
Klikk her for å abonnere