Python udostępnia nam różne sposoby odwracania listy. Omówimy niektóre z wielu technik tworzenia listy Pyton można odwrócić.
Przykład:
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.>
Odwracanie listy w Pythonie
Poniżej znajdują się podejścia, które omówimy w tym artykule:
- Używając krajanie na plastry technika
- Odwracanie listy poprzez zamianę obecnych i ostatnich numerów na raz
- Używając funkcji odwróconej () i odwracać() wbudowana funkcja
- Używać podejście dwupunktowe
- Używając wstawić() funkcjonować
- Za pomocą zrozumienie listy
- Odwracanie listy za pomocą Numpy
1. Odwróć Lista przy użyciu techniki krojenia
W tej technice tworzona jest kopia listy, która nie jest sortowana w miejscu. Utworzenie kopii wymaga większej przestrzeni do przechowywania wszystkich istniejących elementów. To wyczerpuje więcej pamięci. Tutaj używamy krajanie na plastry technika odwracania naszej listy w Pythonie.
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))> |
>
>Wyjście
[15, 14, 13, 12, 11, 10]>
Złożoność czasowa: NA)
Przestrzeń pomocnicza: NA)
2. Odwróć listę, zamieniając jednocześnie obecne i ostatnie liczby
Oto podejście:
Jeśli arr[], size jeśli długość tablicy wynosi 1, zwróć arr. długość elif tablicy wynosi 2, zamień pierwszą i ostatnią liczbę i zwróć arr. w przeciwnym razie zainicjuj i=0. Wykonaj pętlę dla i w rozmiarze//2, następnie zamień pierwszą i ostatnią obecną liczbę, jeśli indeksy pierwszej i następnej liczby nie są takie same, następnie zamień następną i ostatnią z następnych liczb, następnie zwiększ i+=2 i po zapętleniu zwróć arr.
Python3
lista 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> |
>
>Wyjście
Original list: [1, 2, 3, 4, 5] Reversed list: [5, 4, 3, 2, 1]>
Złożoność czasowa: O(log2(n)), gdzie N jest długością podanej tablicy.
Przestrzeń pomocnicza: O(1)
3. Odwróć listę za pomocą wbudowanych funkcji Reversed() i Reverse().
Za pomocą wywrócony() możemy odwrócić listę i a list_reverseiterator tworzony jest obiekt, z którego możemy utworzyć listę za pomocą rzutowania typu list(). Możemy też skorzystać z listy odwracać() funkcja odwracania listy w miejscu.
Python3
lst> => [> 10> ,> 11> ,> 12> ,> 13> ,> 14> ,> 15> ]> lst.reverse()> print> (> 'Using reverse() '> , lst)> print> (> 'Using reversed() '> ,> list> (> reversed> (lst)))> |
>
>Wyjście
Using reverse() [15, 14, 13, 12, 11, 10] Using reversed() [10, 11, 12, 13, 14, 15]>
Złożoność czasowa: O(n), gdzie n jest długością listy lst.
Przestrzeń pomocnicza: O(1), ponieważ modyfikuje oryginalną listę w miejscu i nie tworzy nowej listy.
4. Odwróć listę, stosując podejście dwuwskaźnikowe
W tej metodzie zadeklarujemy dwa wskaźniki (w zasadzie indeks początkowy i indeks końcowy, niech „lewy” i „prawy”). Skanując listę, w każdej iteracji będziemy zamieniać elementy o indeksie „lewy” i „prawy”.
Wskaźnik „lewy” przesunie się do przodu, a wskaźnik „prawy” przesunie się do tyłu. Będziemy kontynuować proces aż do „pierwszego” < „ostatniego”. Będzie to działać zarówno w przypadku parzystej liczby elementów, jak i nieparzystej liczby elementów.
Python3
kolekcje w Javie
# 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))> |
>
>Wyjście
[7, 6, 5, 4, 3, 2, 1]>
Złożoność czasu : NA)
Przestrzeń pomocnicza: O(1)
5. Odwróć listę za pomocą funkcji wstaw().
W tej metodzie nie odwracamy listy w miejscu (modyfikujemy oryginalną listę), ani nie tworzymy żadnej kopii pliku lista . Zamiast tego wstawiamy elementy na 0. indeksie listy, co spowoduje automatyczne odwrócenie listy.
Python3
wielkość łyżeczki
# 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)> |
>
>Wyjście
[15, 14, 13, 12, 11, 10]>
Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(n), gdzie n jest długością listy.
6. Odwróć listę za pomocą rozumienia listy
W tej technice lista nie jest sortowana lokalnie. Kopia oryginalnej tablicy nie jest wymagana. Używamy zrozumienie listy aby odwrócić tablicę i zwrócić listę.
Znajdujemy długość tablicy, a następnie iterujemy po niej, korzystając z zakresu. Teraz, aby zastąpić ostatni element pierwszym, odejmujemy długość oryginalnej listy od indeksu iteratora.
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)> |
>
>Wyjście
[15, 14, 13, 12, 11, 10]>
Złożoność czasowa: O(n), gdzie n jest długością oryginalnej listy.
Przestrzeń pomocnicza: NA),
7. Odwróć listę za pomocą Numpy
Tutaj będziemy używać pakiet numpy :
Zainicjuj listę wejściową my_listKonwertuj moją_listę na tablicę numpy 1D za pomocą np.array(my_list)Odwróć kolejność tablicy za pomocą my_array[::-1]Przekształć odwróconą tępy tablica z powrotem do listy za pomocą .tolist()
Wydrukuj odwróconą listę
Python3
rodzajowość w Javie
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)> |
>
>
Wyjście:
[9, 8, 7, 6, 5, 4]>
Złożoność czasowa: NA)
Przestrzeń pomocnicza: NA)
Omówiliśmy wiele sposobów odwracania listy w Pythonie. Wspomnieliśmy również o ich złożoności czasowej i przestrzeni pomocniczej, aby dać ci właściwe wyobrażenie o szybkości ich przetwarzania.
Mam nadzieję, że ten artykuł pomógł Ci zrozumieć dalsze sposoby jak odwrócić listę Pythona? i łatwo odwrócisz listę w Pythonie.