Python ens ofereix diverses maneres de revertir una llista. Passarem per algunes de les moltes tècniques sobre com es fa una llista Python es pot revertir.
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.>
Revertir una llista en Python
A continuació es mostren els enfocaments que tractarem en aquest article:
- Utilitzant el tallant tècnica
- Invertir la llista intercanviant els números actuals i els últims a la vegada
- Utilitzant la funció inversa () i revés () funció integrada
- Utilitzant a enfocament de dos punts
- Utilitzant el inserir () funció
- Utilitzant comprensió de llista
- Invertir una llista utilitzant Numpy
1. Revés Llista utilitzant la tècnica de tall
En aquesta tècnica, es fa una còpia de la llista i la llista no s'ordena al seu lloc. La creació d'una còpia requereix més espai per contenir tots els elements existents. Això esgota més memòria. Aquí estem utilitzant el tallant tècnica per invertir la nostra llista a Python.
Python 3
# 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))> |
>
>Sortida
[15, 14, 13, 12, 11, 10]>
Complexitat temporal: O(n)
Espai auxiliar: O(n)
2. Invertir la llista canviant els números actuals i els últims a la vegada
Aquí teniu l'enfocament:
Si arr[], la mida si la longitud de la matriu és 1, retorna arr. la longitud elif de la matriu és 2, intercanvieu el primer i l'últim nombre i retorneu arr. en cas contrari, inicialitzeu i=0. Fes un bucle per i en mida//2 i després intercanvia el primer nombre present i l'últim número present si els índexs del primer i el següent nombre no són iguals, després intercanvia el següent i l'últim dels números següents i després augmenta i+=2 i, després de fer un bucle, retorna arr.
Python 3
#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> |
>
>Sortida
Original list: [1, 2, 3, 4, 5] Reversed list: [5, 4, 3, 2, 1]>
Complexitat temporal: O(log2(n)), on n és la longitud de la matriu donada.
Espai auxiliar: O(1)
3. Invertir la llista utilitzant la funció integrada Reversed() i Reverse()
Utilitzant invertit () podem invertir la llista i a list_reverseiterator es crea l'objecte, a partir del qual podem crear una llista utilitzant el càsting de tipus list(). O també podem utilitzar la llista revés () funció per invertir la llista al seu lloc.
Python 3
lst> => [> 10> ,> 11> ,> 12> ,> 13> ,> 14> ,> 15> ]> lst.reverse()> print> (> 'Using reverse() '> , lst)> print> (> 'Using reversed() '> ,> list> (> reversed> (lst)))> |
>
>Sortida
Using reverse() [15, 14, 13, 12, 11, 10] Using reversed() [10, 11, 12, 13, 14, 15]>
Complexitat temporal: O(n), on n és la longitud de la llista lst.
Espai auxiliar: O(1) ja que modifica la llista original i no crea una llista nova.
4. Invertir una llista utilitzant un enfocament de dos punters
En aquest mètode, declararem dos punters (bàsicament l'índex inicial i l'índex final, deixant 'esquerra' i 'dreta'). Mentre escanegeu la llista, en cada iteració canviarem els elements de l'índex 'esquerra' i 'dreta'.
El punter 'esquerra' es mourà cap endavant i el punter 'dreta' es mourà cap enrere. Continuarem el procés fins a 'primer' <'últim'. Això funcionarà tant per a un nombre parell d'elements com per a un nombre senar.
Python 3
# 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))> |
>
>Sortida
[7, 6, 5, 4, 3, 2, 1]>
Complexitat temporal : O(N)
Espai auxiliar: O(1)
5. Invertir una llista utilitzant la funció insert().
En aquest mètode, no invertim una llista en el seu lloc (modifiquem la llista original) ni en creem cap còpia llista . En canvi, seguim inserint elements a l'índex 0 de la llista, això invertirà automàticament la llista.
Python 3
conversió de cadena java a int
# 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)> |
>
>Sortida
[15, 14, 13, 12, 11, 10]>
Complexitat temporal: O(n)
Espai auxiliar: O(n), on n és la longitud de la llista.
6. Invertir una llista mitjançant la comprensió de llista
En aquesta tècnica, la llista no s'ordena al seu lloc. No cal una còpia de la matriu original. Fem servir comprensió de llista per invertir la matriu i tornar la llista.
Trobem la longitud de la matriu i després iterem sobre ella utilitzant l'interval. Ara, per substituir l'últim element pel primer, restem la longitud de la llista original de l'índex de l'iterador.
Python 3
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)> |
>
>Sortida
[15, 14, 13, 12, 11, 10]>
Complexitat temporal: O(n), on n és la longitud de la llista_original.
Espai auxiliar: O(n),
7. Invertir una llista amb Numpy
Aquí anem a utilitzar paquet numpy :
Inicialitzar la llista d'entrada my_listConvert my_list a una matriu numpy 1D utilitzant np.array(my_list)Invertir l'ordre de la matriu utilitzant my_array[::-1]Convertir la invertida numpy la matriu torna a una llista utilitzant .tolist()
Imprimeix la llista invertida
Python 3
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)> |
>
>
Sortida:
[9, 8, 7, 6, 5, 4]>
Complexitat temporal: O(n)
Espai auxiliar: O(n)
Hem parlat de moltes maneres de revertir una llista a Python. També hem esmentat la seva complexitat temporal i l'espai auxiliar per donar-vos una idea correcta sobre la seva velocitat de processament.
Espero que aquest article us hagi ajudat a entendre les maneres com invertir una llista de Python? i invertirà fàcilment una llista a Python.