Python ne oferă diverse modalități de a inversa o listă. Vom parcurge câteva dintre numeroasele tehnici despre cum se face o listă Piton poate fi inversat.
Exemplu:
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.>
Inversarea unei liste în Python
Mai jos sunt abordările pe care le vom acoperi în acest articol:
- Folosind felierea tehnică
- Inversarea listei prin schimbarea numerelor prezente și ultimelor o dată
- Folosind inversul() și verso() functie incorporata
- Folosind un abordare în două puncte
- Folosind introduce() funcţie
- Folosind înțelegerea listei
- Inversarea unei liste folosind Numpy
1. invers Lista folosind tehnica de tăiere
În această tehnică, se face o copie a listei, iar lista nu este sortată în loc. Crearea unei copii necesită mai mult spațiu pentru a deține toate elementele existente. Acest lucru epuizează mai multă memorie. Aici folosim felierea tehnică de a inversa lista noastră în Python.
testarea software-ului și tipurile
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))> |
>
>Ieșire
[15, 14, 13, 12, 11, 10]>
Complexitatea timpului: Pe)
Spatiu auxiliar: Pe)
2. Inversați lista schimbând numerele prezente și ultimele o dată
Iată abordarea:
Dacă arr[], dimensiunea dacă lungimea matricei este 1, atunci returnează arr. elif lungimea matricei este 2, schimbați primul și ultimul număr și returnați arr. în caz contrar, inițializați i=0. Buclă pentru i în dimensiune//2, apoi schimbă primul număr prezent și ultimul număr prezent dacă indicii pentru primul și următorul numere nu sunt aceiași, apoi schimbă următorul și ultimul dintre următoarele numere, apoi incrementează i+=2, iar după buclă returnează 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> |
>
>Ieșire
Original list: [1, 2, 3, 4, 5] Reversed list: [5, 4, 3, 2, 1]>
Complexitatea timpului: O(log2(n)), unde n este lungimea tabloului dat.
Spațiu auxiliar: O(1)
iterator hartă java
3. Lista inversă folosind funcția încorporată Reversed() și Reverse().
Folosind inversat() putem inversa lista și a list_reverseiterator este creat obiectul, din care putem crea o listă folosind casting de tip list(). Sau, putem folosi și lista verso() funcția de a inversa lista în loc.
Python3
lst> => [> 10> ,> 11> ,> 12> ,> 13> ,> 14> ,> 15> ]> lst.reverse()> print> (> 'Using reverse() '> , lst)> print> (> 'Using reversed() '> ,> list> (> reversed> (lst)))> |
>
>Ieșire
Using reverse() [15, 14, 13, 12, 11, 10] Using reversed() [10, 11, 12, 13, 14, 15]>
Complexitatea timpului: O(n), unde n este lungimea listei lst.
Spatiu auxiliar: O(1) deoarece modifică lista originală și nu creează o nouă listă.
4. Inversați o listă utilizând o abordare cu două puncte
În această metodă, vom declara doi pointeri (în principiu indexul de început și indicele de sfârșit, fie „stânga” și „dreapta”). În timpul scanării listei, în fiecare iterație vom schimba elementele de la indexul „stânga” și „dreapta”.
Indicatorul „stânga” se va deplasa înainte, iar indicatorul „dreapta” se va deplasa înapoi. Vom continua procesul până la „primul” <„ultimul”. Acest lucru va funcționa atât pentru un număr par de elemente, cât și pentru un număr impar de elemente.
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))> |
>
>Ieșire
[7, 6, 5, 4, 3, 2, 1]>
Complexitatea timpului : PE)
Spațiu auxiliar: O(1)
5. Inversați o listă folosind funcția insert().
În această metodă, nici nu inversăm o listă în loc (modificăm lista originală) și nici nu creăm nicio copie a listă . În schimb, continuăm să inserăm elemente la indexul 0 al listei, aceasta va inversa automat lista.
Python3
tipuri de testare
# 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)> |
>
>Ieșire
[15, 14, 13, 12, 11, 10]>
Complexitatea timpului: Pe)
Spațiu auxiliar: O(n), unde n este lungimea listei.
6. Inversați o listă utilizând Lista de înțelegere
În această tehnică, lista nu este sortată în loc. Nu este necesară o copie a matricei originale. Folosim înțelegerea listei pentru a inversa matricea și a returna lista.
Găsim lungimea matricei și apoi iterăm peste ea folosind intervalul. Acum, pentru a înlocui ultimul element cu primul, scădem lungimea listei originale din indexul iteratorului.
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)> |
>
>Ieșire
[15, 14, 13, 12, 11, 10]>
Complexitatea timpului: O(n), unde n este lungimea listei_originale.
Spatiu auxiliar: Pe),
7. Inversați o listă folosind Numpy
Aici vom folosi pachet numpy :
Inițializați lista de intrare my_listConvert my_list într-o matrice numpy 1D folosind np.array(my_list)Inversați ordinea matricei folosind my_array[::-1]Convertiți inversul numpy matrice înapoi la o listă folosind .tolist()
Tipăriți lista inversată
Python3
coada de prioritate c++
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)> |
>
>
Ieșire:
[9, 8, 7, 6, 5, 4]>
Complexitatea timpului: Pe)
Spatiu auxiliar: Pe)
Am discutat multe moduri de a inversa o listă în Python. De asemenea, am menționat complexitățile lor de timp și spațiul auxiliar pentru a vă oferi o idee corectă despre viteza lor de procesare.
Sper că acest articol v-a ajutat să înțelegeți modalitățile cum se inversează o listă python? și veți inversa cu ușurință o listă în Python.