logo

Reversere en liste i Python

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.