logo

Een lijst omkeren in Python

Python biedt ons verschillende manieren om een ​​lijst om te keren. We zullen enkele van de vele technieken bespreken over hoe een lijst kan worden gemaakt Python kan worden teruggedraaid.

Voorbeeld:



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

Een lijst omkeren in Python

Hieronder staan ​​de benaderingen die we in dit artikel zullen behandelen:

  • De ... gebruiken snijden techniek
  • Lijst omkeren door huidige en laatste nummers tegelijk om te wisselen
  • Met behulp van de reverse() en achteruit() ingebouwde functie
  • Gebruik maken van een tweepuntsbenadering
  • De ... gebruiken invoegen() functie
  • Gebruik makend van lijst begrip
  • Een lijst omkeren met behulp van Numpy

1. Achteruit Lijst met behulp van snijtechniek

Bij deze techniek wordt een kopie van de lijst gemaakt en wordt de lijst niet op zijn plaats gesorteerd. Voor het maken van een kopie is meer ruimte nodig om alle bestaande elementen te kunnen bevatten. Hierdoor wordt meer geheugen verbruikt. Hier gebruiken we de snijden techniek om onze lijst in Python om te keren.

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

>

wat is bijenkorf

>

Uitvoer

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

Tijdcomplexiteit: Op)
Hulpruimte: Op)

2. Lijst omkeren door huidige en laatste nummers tegelijk om te wisselen

Hier is de aanpak:

Als de arr[], size als de lengte van de array 1 is, retourneer dan arr. elif lengte van de array is 2, verwissel het eerste en laatste getal en retourneer arr. anders initialiseert u i=0. Loop voor i in grootte//2 en verwissel vervolgens de eerste huidige en laatst aanwezige getallen als de indexen van de eerste en volgende getallen niet hetzelfde zijn, verwissel vervolgens de volgende en laatste van de volgende getallen en verhoog vervolgens i+=2, en na het herhalen van de lus retourneer 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>

>

>

Uitvoer

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

Tijdcomplexiteit: O(log2(n)), waarbij N is de lengte van de gegeven array.
Hulpruimte: O(1)

3. Omgekeerde lijst met behulp van de ingebouwde functies Reversed() en Reverse().

Gebruik makend van teruggedraaid() we kunnen de lijst omkeren en a list_reverseiterator object wordt gemaakt, van waaruit we een lijst kunnen maken met behulp van list() type casting. Of we kunnen ook de lijst gebruiken achteruit() functie om de lijst op zijn plaats om te keren.

Python3




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

>

>

Uitvoer

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

Tijdcomplexiteit: O(n), waarbij n de lengte van de lijst lst is.
Hulpruimte: O(1) omdat het de oorspronkelijke bestaande lijst wijzigt en geen nieuwe lijst creëert.

4. Draai een lijst om met behulp van een tweepuntsbenadering

Bij deze methode declareren we twee pointers (in feite de startindex en de eindindex, laat ‘links’ en ‘rechts’). Terwijl we de lijst scannen, zullen we in elke iteratie de elementen bij de index ‘links’ en ‘rechts’ omwisselen.

De ‘linker’-wijzer gaat naar voren en de ‘rechts’-wijzer gaat naar achteren. We gaan door met het proces tot ‘eerste’ <‘laatste’. Dit werkt zowel voor een even aantal elementen als voor een oneven aantal elementen.

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

>

>

Uitvoer

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

Tijdcomplexiteit : OP)
Hulpruimte: O(1)

5. Draai een lijst om met de functie insert().

Bij deze methode keren we een bestaande lijst niet om (wij wijzigen de originele lijst) en maken we ook geen kopie van de lijst . In plaats daarvan blijven we items invoegen op de 0e index van de lijst, hierdoor wordt de lijst automatisch omgedraaid.

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

Javac wordt niet herkend

>

>

Uitvoer

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

Tijdcomplexiteit: Op)
Hulpruimte: O(n), waarbij n de lengte van de lijst is.

6. Draai een lijst om met behulp van Lijstbegrip

Bij deze techniek wordt de lijst niet op zijn plaats gesorteerd. Een kopie van de originele array is niet vereist. We gebruiken lijst begrip om de array om te keren en de lijst terug te geven.

We vinden de lengte van de array en herhalen deze vervolgens met behulp van het bereik. Om nu het laatste element door het eerste te vervangen, trekken we de lengte van de originele lijst af van de index van de iterator.

Python3


array sorteert java



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

>

>

Uitvoer

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

Tijdcomplexiteit: O(n), waarbij n de lengte van de originele_lijst is.
Hulpruimte: Op),

7. Draai een lijst om met Numpy

Hier gaan we gebruiken numpig pakket :

Initialiseer de invoerlijst my_listConverteer mijn_lijst naar een 1D numpy-array met behulp van np.array(my_list)Keer de volgorde van de array om met my_array[::-1]Converteer het omgekeerde numpig array terug naar een lijst met .tolist()

Druk de omgekeerde lijst af

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

>

>

Uitgang:

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

Tijdcomplexiteit: Op)
Hulpruimte: Op)

We hebben veel manieren besproken om een ​​lijst in Python om te keren. We hebben ook hun tijdscomplexiteit en hulpruimte genoemd om u een goed idee te geven van hun verwerkingssnelheid.

Ik hoop dat dit artikel je heeft geholpen manieren te begrijpen Hoe kan ik een Python-lijst omkeren? en je kunt een lijst gemakkelijk omkeren in Python.