Å 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 = []

instagram viewer

# 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

DelekvitringDeleE-post

Relaterte temaer

  • Programmering
  • Programmering
  • Python
  • Algoritmer

Om forfatteren

Idowu Omisola (138 artikler publisert)

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.

Mer fra Idowu Omisola

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