Python gir oss ulike måter å snu en liste på. Vi vil gå gjennom noen av de mange teknikkene for hvordan en liste inn Python kan reverseres.
Eksempel:
Input: list = [4, 5, 6, 7, 8, 9] Output: [9, 8, 7, 6, 5, 4] Explanation: The list we are having in the output is reversed to the list we have in the input.>
Reversere en liste i Python
Nedenfor er tilnærmingene vi vil dekke i denne artikkelen:
- Bruker skjæring teknikk
- Reverseringsliste ved å bytte nåværende og siste tall om gangen
- Bruke reversed() og omvendt() innebygd funksjon
- Bruker en to-punkts tilnærming
- Bruker sett inn() funksjon
- Ved hjelp av listeforståelse
- Reversere en liste ved hjelp av Numpy
1. Omvendt Liste ved hjelp av skjæreteknikk
I denne teknikken lages en kopi av listen, og listen er ikke sortert på plass. Å lage en kopi krever mer plass til å holde alle eksisterende elementer. Dette tømmer mer minne. Her bruker vi skjæring teknikk for å reversere listen vår i Python.
Python3
# Reversing a list using slicing technique> def> Reverse(lst):> > new_lst> => lst[::> -> 1> ]> > return> new_lst> lst> => [> 10> ,> 11> ,> 12> ,> 13> ,> 14> ,> 15> ]> print> (Reverse(lst))> |
>
>Produksjon
[15, 14, 13, 12, 11, 10]>
Tidskompleksitet: På)
Ekstra plass: På)
2. Omvendt liste ved å bytte nåværende og siste tall om gangen
Her er tilnærmingen:
Hvis arr[], størrelse hvis lengden på arrayen er 1, returner arr. elif lengden på matrisen er 2, bytt det første og siste tallet og returner arr. ellers initialiser i=0. Sløyfe for i i størrelse//2, bytt deretter de første nåværende og siste nåværende tallene hvis de første og neste tallindeksene ikke er like, bytt deretter neste og siste av neste tall og øk deretter i+=2, og returner arr etter looping.
Python3
#Python program to reverse an array> def> list_reverse(arr,size):> > #if only one element present, then return the array> > if> (size> => => 1> ):> > return> arr> > > #if only two elements present, then swap both the numbers.> > elif> (size> => => 2> ):> > arr[> 0> ],arr[> 1> ],> => arr[> 1> ],arr[> 0> ]> > return> arr> > > #if more than two elements presents, then swap first and last numbers.> > else> :> > i> => 0> > while> (i//2): #swap present and preceding numbers at time and jump to second element after swap arr[i],arr[size-i-1]=arr[size-i-1],arr[i] #skip if present and preceding numbers indexes are same if((i!=i+1 and size-i-1 != size-i-2) and (i!=size-i-2 and size-i-1!=i+1)): arr[i+1],arr[size-i-2]=arr[size-i-2],arr[i+1] i+=2 return arr arr=[1,2,3,4,5] size=5 print('Original list: ',arr) print('Reversed list: ',list_reverse(arr,size)) #This contributed by SR.Dhanush> |
>
>Produksjon
Original list: [1, 2, 3, 4, 5] Reversed list: [5, 4, 3, 2, 1]>
Tidskompleksitet: O(log2(n)), hvor n er lengden på den gitte matrisen.
Hjelpeplass: O(1)
3. Reverseringsliste ved å bruke Reversed() og Reverse() innebygde funksjoner
Ved hjelp av reversert() vi kan snu listen og a list_reverseiterator objektet er opprettet, hvorfra vi kan lage en liste ved å bruke list() type casting. Eller vi kan også bruke listen omvendt() funksjon for å snu listen på plass.
Python3
hvordan konvertere et heltall til en streng i java
lst> => [> 10> ,> 11> ,> 12> ,> 13> ,> 14> ,> 15> ]> lst.reverse()> print> (> 'Using reverse() '> , lst)> print> (> 'Using reversed() '> ,> list> (> reversed> (lst)))> |
>
>Produksjon
Using reverse() [15, 14, 13, 12, 11, 10] Using reversed() [10, 11, 12, 13, 14, 15]>
Tidskompleksitet: O(n), hvor n er lengden på listen lst.
Ekstra plass: O(1) siden den endrer den opprinnelige listen på plass og ikke oppretter en ny liste.
4. Reversere en liste ved hjelp av en to-peker-tilnærming
I denne metoden vil vi erklære to pekere (i utgangspunktet startindeksen og sluttindeksen, la 'venstre' og 'høyre'). Mens vi skanner listen, vil vi i hver iterasjon bytte elementene ved indeksen 'venstre' og 'høyre'.
'Venstre'-pekeren vil bevege seg fremover og 'høyre'-pekeren vil bevege seg bakover. Vi vil fortsette prosessen til 'første' <'siste'. Dette vil fungere for både et partall av elementer og et oddetall av elementer.
Python3
# Reversing a list using two-pointer approach> def> reverse_list(arr):> > left> => 0> > right> => len> (arr)> -> 1> > while> (left # Swap temp = arr[left] arr[left] = arr[right] arr[right] = temp left += 1 right -= 1 return arr arr = [1, 2, 3, 4, 5, 6, 7] print(reverse_list(arr))> |
>
>Produksjon
[7, 6, 5, 4, 3, 2, 1]>
Tidskompleksitet : O(N)
Hjelpeplass: O(1)
forskjell på tiger og løve
5. Reversere en liste ved å bruke insert()-funksjonen
I denne metoden reverserer vi verken en liste på plass (modifiserer den opprinnelige listen) eller lager noen kopi av liste . I stedet fortsetter vi å sette inn elementer ved den 0. indeksen på listen, dette vil automatisk reversere listen.
Python3
# input list> lst> => [> 10> ,> 11> ,> 12> ,> 13> ,> 14> ,> 15> ]> # the above input can also be given as> # lst=list(map(int,input().split()))> l> => []> # empty list> # iterate to reverse the list> for> i> in> lst:> > # reversing the list> > l.insert(> 0> , i)> # printing result> print> (l)> |
>
>Produksjon
[15, 14, 13, 12, 11, 10]>
Tidskompleksitet: På)
Hjelpeplass: O(n), hvor n er lengden på listen.
6. Reversere en liste ved å bruke listeforståelse
I denne teknikken er ikke listen sortert på plass. En kopi av den originale matrisen er ikke nødvendig. Vi bruker listeforståelse for å reversere matrisen og returnere listen.
Vi finner lengden på matrisen og itererer deretter over den ved hjelp av området. Nå, for å erstatte det siste elementet med det første, trekker vi lengden på den opprinnelige listen fra indeksen til iteratoren.
Python3
original_list> => [> 10> ,> 11> ,> 12> ,> 13> ,> 14> ,> 15> ]> new_list> => [original_list[> len> (original_list)> -> i]> > for> i> in> range> (> 1> ,> len> (original_list)> +> 1> )]> print> (new_list)> |
>
>Produksjon
[15, 14, 13, 12, 11, 10]>
Tidskompleksitet: O(n), hvor n er lengden på original_listen.
Ekstra plass: På),
7. Reversere en liste med Numpy
Her skal vi bruke numpy pakke :
Initialiser inndatalisten my_listKonverter my_list til en 1D numpy array ved å bruke np.array(my_list)Reversere rekkefølgen på arrayen ved å bruke my_array[::-1]Konverter reversed nusset array tilbake til en liste med .tolist()
Skriv ut den omvendte listen
Python3
import> numpy as np> # Input list> my_list> => [> 4> ,> 5> ,> 6> ,> 7> ,> 8> ,> 9> ]> # Convert the list to a 1D numpy array> my_array> => np.array(my_list)> # Reverse the order of the array> reversed_array> => my_array[::> -> 1> ]> # Convert the reversed array to a list> reversed_list> => reversed_array.tolist()> # Print the reversed list> print> (reversed_list)> |
>
>
Produksjon:
[9, 8, 7, 6, 5, 4]>
Tidskompleksitet: På)
Ekstra plass: På)
Vi har diskutert mange måter å snu en liste på i Python. Vi har også nevnt deres tidskompleksitet og hjelpeplass for å gi deg en riktig idé om prosesseringshastigheten deres.
Håper denne artikkelen hjalp deg med å forstå måter på hvordan snu en pythonliste? og du vil enkelt reversere en liste i Python.