logo

Reversere en liste i Python

Python giver os forskellige måder at vende en liste på. Vi vil gennemgå nogle af de mange teknikker til, hvordan en liste ind Python kan vendes.

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 de tilgange, som vi vil dække i denne artikel:

  • Bruger udskæring teknik
  • Vendeliste ved at bytte nuværende og sidste tal ad gangen
  • Brug af reversed() og baglæns() indbygget funktion
  • Ved hjælp af en to-point tilgang
  • Bruger indsæt() fungere
  • Ved brug af listeforståelse
  • Vende en liste vha Numpy

1. Omvendt Liste ved hjælp af udskæringsteknik

I denne teknik laves en kopi af listen, og listen er ikke sorteret på plads. Oprettelse af en kopi kræver mere plads til at indeholde alle de eksisterende elementer. Dette udtømmer mere hukommelse. Her bruger vi udskæring teknik til at vende vores liste 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))>

>

>

Produktion

[15, 14, 13, 12, 11, 10]>

Tidskompleksitet: På)
Hjælpeplads: På)

2. Vend listen ved at bytte nuværende og sidste tal ad gangen

Her er tilgangen:

Hvis arr[], størrelse hvis længden af ​​arrayet er 1, så returner arr. elif længden af ​​arrayet er 2, skift det første og sidste tal og returner arr. ellers initialiseres i=0. Loop for i i størrelse//2, skift derefter det første nuværende og det sidste nuværende tal, hvis det første og næste talindeks ikke er det samme, skift derefter det næste og det sidste af de næste tal og øg derefter i+=2, og efter looping returnerer arr.

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>

>

>

Produktion

Original list: [1, 2, 3, 4, 5] Reversed list: [5, 4, 3, 2, 1]>

Tidskompleksitet: O(log2(n)), hvor n er længden af ​​det givne array.
Hjælpeplads: O(1)

3. Omvendt liste ved hjælp af den indbyggede funktion Reversed() og Reverse().

Ved brug af omvendt() vi kan vende listen og en list_reverseiterator objekt er oprettet, hvorfra vi kan oprette en liste ved hjælp af list() type casting. Eller vi kan også bruge listen baglæns() funktion til at vende listen på plads.

Python3

char til heltal java




lst>=> [>10>,>11>,>12>,>13>,>14>,>15>]> lst.reverse()> print>(>'Using reverse() '>, lst)> print>(>'Using reversed() '>,>list>(>reversed>(lst)))>

>

>

Produktion

Using reverse() [15, 14, 13, 12, 11, 10] Using reversed() [10, 11, 12, 13, 14, 15]>

Tidskompleksitet: O(n), hvor n er længden af ​​listen lst.
Hjælpeplads: O(1), da den ændrer den oprindelige liste på plads og ikke opretter en ny liste.

4. Vend en liste ved hjælp af en to-pointer tilgang

I denne metode vil vi erklære to pointere (dybest set startindekset og slutindekset, lad 'venstre' og 'højre'). Mens vi scanner listen, vil vi i hver iteration bytte elementerne ved indeks 'venstre' og 'højre'.

'Venstre'-markøren vil bevæge sig fremad, og 'højre'-markøren vil flytte tilbage. Vi fortsætter processen indtil 'første' <'sidste'. Dette vil fungere for både et lige antal elementer og et ulige antal 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))>

>

>

Produktion

[7, 6, 5, 4, 3, 2, 1]>

Tidskompleksitet : PÅ)
Hjælpeplads: O(1)

eksempler på binære træer

5. Vend en liste ved hjælp af insert()-funktionen

I denne metode vender vi hverken en liste på plads (ændrer den originale liste) eller opretter nogen kopi af liste . I stedet for bliver vi ved med at indsætte elementer på listens 0. indeks, dette vil automatisk vende listen om.

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)>

>

>

Produktion

[15, 14, 13, 12, 11, 10]>

Tidskompleksitet: På)
Hjælpeplads: O(n), hvor n er længden af ​​listen.

6. Vend en liste ved hjælp af listeforståelse

I denne teknik er listen ikke sorteret på plads. En kopi af det originale array er ikke påkrævet. Vi bruger listeforståelse for at vende arrayet og returnere listen.

Vi finder længden af ​​arrayet og itererer derefter over det ved hjælp af området. Nu, for at erstatte det sidste element med det første, trækker vi længden af ​​den originale liste fra iteratorens indeks.

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)>

>

>

Produktion

[15, 14, 13, 12, 11, 10]>

Tidskompleksitet: O(n), hvor n er længden af ​​original_listen.
Hjælpeplads: På),

7. Vend en liste ved hjælp af Numpy

Her skal vi bruge numpy pakke :

Initialiser inputlisten my_listKonverter my_list til et 1D numpy array ved hjælp af np.array(my_list)Vend rækkefølgen af ​​arrayet ved hjælp af my_array[::-1]Konverter det omvendte array nusset array tilbage til en liste ved hjælp af .tolist()

Udskriv den omvendte liste

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)>

>

>

Produktion:

[9, 8, 7, 6, 5, 4]>

Tidskompleksitet: På)
Hjælpeplads: På)

Vi har diskuteret mange måder at vende en liste på i Python. Vi har også nævnt deres tidskompleksitet og hjælpeplads for at give dig den rigtige idé om deres behandlingshastighed.

Håber denne artikel hjalp dig med at forstå måder hvordan vende en python liste? og du vil nemt vende en liste i Python.