Att vända på en lista eller en array är en vanlig programmeringsuppgift. Det finns många fall då du kan behöva presentera data i omvänd ordning, till exempel när du sorterar en lista.
Hur kan du vända en lista eller en array med Python? Du kommer att lära dig de olika tillvägagångssätten i den här artikeln.
Skapa en kopia med en for-loop
Medan Python är för loop är mer omfattande kan det vara praktiskt i vissa fall. Till exempel ger det mer flexibilitet när du utför komplex logik vid vissa punkter i den omvända operationen.
När du använder en indragen för loop, är det vanliga tillvägagångssättet att iterera genom den ursprungliga listan i omvänd ordning. Börjar med det sista elementet, varje iteration lägger sedan till det föregående elementet till en ny lista.
Med en lista med heltal mellan ett och nio som ett exempel, så här vänder du en array med en indragen för slinga:
språk = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Skapa en tom lista för att hålla den omvända arrayen:
omvänd_lista = []# Subtrahera en från längden på den ursprungliga arrayen för att börja från det sista indexet:
reducerare = len (språk)-1# Vänd listan inuti en for-loop:
för jag på språk:
reversed_list.append (språk[reducer]) # Lägg till resultatet i den tomma listan
reducerare -=1 # Minska indexet med ett vid varje iteration med hjälp av reduceraren
print (reversed_list)
Produktion:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Vänd om en lista eller en matris med hjälp av listförståelse
A listförståelse ger kortare kod. Och det finns inget behov av en temporär variabel eftersom listförståelse agerar på en lista på plats.
För att utföra föregående operation, med hjälp av en listförståelse:
reducerare = len (språk)
# Minska indexet inom en intervallfunktion med för loop i en listförståelse
Reversed_list = [språk[reducer] för reducering inom intervallet (reducer -1,-1,-1)]
skriv ut (Omvänd_lista)
Produktion:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Använd Slice Operator
Listsegmentoperatören är ganska enkel, även om den har vissa begränsningar. Till exempel kanske du inte kan anpassa utdata som när du använder en för slinga.
Så här vänder du en lista med segmentoperatorn:
språk = [1, 2, 3, 4, 5, 6, 7, 8, 9]
rev_list = språk[::-1]
print (rev_list)
Produktion:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
De [::-1] syntax är en smart genväg som resulterar i en omvänd lista. Det betyder faktiskt "kopiera varje element i listan, börja från slutet och räkna bakåt" - dvs "vända om det"!
Använd en Arrays omvända metod
Detta är en annan metod som fungerar på plats: den modifierar den ursprungliga arrayen. Detta kan vara en brist eftersom du inte kan behålla den tidigare listan för andra operationer.
Så här vänder du en array med den omvända metoden:
språk = [1, 2, 3, 4, 5, 6, 7, 8, 9]
languages.reverse()
tryck (språk)
Produktion:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Använd den omvända funktionen
Den omvända funktionen itererar över en lista, array eller någon annan sekvens och returnerar sin omvända kopia. Du måste dock uttryckligen deklarera den omvända utmatningen som en lista.
Så här fungerar det:
språk = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print (lista (omvänd (språk)))
Produktion:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Bli kreativ med matriser
Matriser eller listor är vanliga sätt att lagra data. Beroende på ditt mål kanske du vill presentera data för klienten i omvänd ordning. Ett sätt att göra detta är att vända arrayen eller listan innan du renderar den. Som du har sett finns det ett par sätt att invertera en lista i Python. Välj det som fungerar bäst för dig och stämmer överens med din logik för ett specifikt problem.
Du kanske också vill se hur man vänder en array i andra programmeringsspråk för att förstå bakgrundslogiken bättre.
Hur man vänder en array i C++, Python och JavaScript
Läs Nästa
Relaterade ämnen
- Programmering
- Programmering
- Pytonorm
- Algoritmer
Om författaren
Idowu brinner för allt smart teknik och produktivitet. På fritiden leker han med kodning och byter till schackbrädet när han har tråkigt, men han älskar också att bryta sig loss från rutinen då och då. Hans passion för att visa människor vägen runt modern teknik motiverar honom att skriva mer.
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera