logo

Inverser une liste en Python

Python nous propose différentes manières d'inverser une liste. Nous passerons en revue certaines des nombreuses techniques permettant de créer une liste dans Python peut être inversé.

Exemple:



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

Inverser une liste en Python

Vous trouverez ci-dessous les approches que nous aborderons dans cet article :

  • En utilisant le trancher technique
  • Inverser la liste en échangeant les numéros présents et les derniers à la fois
  • En utilisant reversed() et inverse() fonction intégrée
  • Utilisant un approche à deux points
  • En utilisant le insérer() fonction
  • En utilisant compréhension de liste
  • Inverser une liste en utilisant Numpy

1. Inverser Liste utilisant la technique de découpage

Dans cette technique, une copie de la liste est effectuée et la liste n'est pas triée sur place. La création d'une copie nécessite plus d'espace pour contenir tous les éléments existants. Cela épuise plus de mémoire. Nous utilisons ici le trancher technique pour inverser notre liste en 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))>

>

>

Sortir

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

Complexité temporelle : Sur)
Espace auxiliaire : Sur)

2. Inverser la liste en échangeant les numéros présents et derniers à la fois

Voici l'approche :

Si le arr[], taille si la longueur du tableau est 1, alors renvoie arr. La longueur elif du tableau est de 2, échangez le premier et le dernier nombre et renvoyez arr. sinon, initialisez i=0. Bouclez pour i en taille // 2 puis échangez le premier et le dernier nombre présent si les index du premier et du prochain numéro ne sont pas identiques, puis échangez le suivant et le dernier des nombres suivants puis incrémentez i + = 2, et après la boucle, retournez arr.

Python3

tableau en java




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

>

>

Sortir

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

Complexité temporelle : O(log2(n)), où n est la longueur du tableau donné.
Espace auxiliaire : O(1)

3. Liste inversée à l'aide des fonctions intégrées Reversed() et Reverse()

En utilisant renversé() nous pouvons inverser la liste et un list_reverseiterator Un objet est créé, à partir duquel nous pouvons créer une liste en utilisant le casting de type list(). Ou bien, nous pouvons également utiliser la liste inverse() fonction pour inverser la liste en place.

Python3




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

>

>

Sortir

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

Complexité temporelle : O(n), où n est la longueur de la liste lst.
Espace auxiliaire : O(1) puisqu'il modifie la liste d'origine en place et ne crée pas de nouvelle liste.

4. Inverser une liste en utilisant une approche à deux points

Dans cette méthode, nous déclarerons deux pointeurs (essentiellement l'index de début et l'index de fin, soit « gauche » et « droite »). Lors de l'analyse de la liste, à chaque itération, nous échangerons les éléments aux index « gauche » et « droite ».

Le pointeur « gauche » avancera et le pointeur « droite » reculera. Nous continuerons le processus jusqu’à « premier » < « dernier ». Cela fonctionnera à la fois pour un nombre pair d’éléments et pour un nombre impair d’éléments.

Python3


chaîne.format java



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

>

>

Sortir

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

Complexité temporelle : SUR)
Espace auxiliaire : O(1)

5. Inverser une liste à l'aide de la fonction insert()

Dans cette méthode, nous n'inversons pas une liste en place (modifions la liste d'origine) ni ne créons de copie de la liste. liste . Au lieu de cela, nous continuons à insérer des éléments au 0ème index de la liste, cela inversera automatiquement la liste.

Python3


décompression sous Linux



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

>

>

Sortir

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

Complexité temporelle : Sur)
Espace auxiliaire : O(n), où n est la longueur de la liste.

6. Inverser une liste à l'aide de la compréhension de liste

Dans cette technique, la liste n’est pas triée sur place. Une copie du tableau d'origine n'est pas requise. Nous utilisons compréhension de liste pour inverser le tableau et renvoyer la liste.

Nous trouvons la longueur du tableau, puis parcourons-le en utilisant la plage. Maintenant, pour remplacer le dernier élément par le premier, nous soustrayons la longueur de la liste d'origine de l'index de l'itérateur.

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

>

>

Sortir

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

Complexité temporelle : O(n), où n est la longueur de la liste_originale.
Espace auxiliaire : Sur),

7. Inverser une liste à l'aide de Numpy

Ici, nous allons utiliser paquet numpy :

Initialisez la liste d'entrée my_listConvertissez my_list en un tableau numpy 1D à l'aide de np.array(my_list)Inversez l'ordre du tableau à l'aide de my_array[::-1]Convertissez l'ordre inversé numpy tableau vers une liste en utilisant .tolist()

Imprimer la liste inversée

Python3




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

>

>

Sortir:

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

Complexité temporelle : Sur)
Espace auxiliaire : Sur)

Nous avons discuté de nombreuses façons d'inverser une liste en Python. Nous avons également mentionné leurs complexités temporelles et leur espace auxiliaire pour vous donner une bonne idée de leur vitesse de traitement.

J'espère que cet article vous a aidé à comprendre les moyens comment inverser une liste python ? et vous inverserez facilement une liste en Python.