Python надає нам різні способи перевертання списку. Ми розглянемо деякі з багатьох методів створення списку Python можна скасувати.
приклад:
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.>
Перевертання списку в Python
Нижче наведено підходи, які ми розглянемо в цій статті.
- Використовуючи нарізка техніка
- Перевертання списку шляхом міняння поточних і останніх номерів одночасно
- Використовуючи reversed() і зворотний() вбудована функція
- Використовуючи a двосторонній підхід
- Використовуючи вставити() функція
- Використання розуміння списку
- Перевертання списку за допомогою Numpy
1. Реверс Список за допомогою техніки нарізки
У цій техніці створюється копія списку, а список не сортується на місці. Для створення копії потрібно більше місця для розміщення всіх наявних елементів. Це виснажує більше пам'яті. Тут ми використовуємо нарізка техніка, щоб змінити наш список у 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))> |
>
mb проти gb
>Вихід
[15, 14, 13, 12, 11, 10]>
Часова складність: O(n)
Допоміжні приміщення: O(n)
2. Оберніть список, помінявши поточний і останній номери за один раз
Ось підхід:
Якщо arr[], розмір, якщо довжина масиву дорівнює 1, повертає arr. elif довжина масиву дорівнює 2, поміняйте місцями перше й останнє число та поверніть arr. інакше ініціалізуйте i=0. Цикл для i у розмірі//2, потім поміняти місцями перше поточне та останнє поточні числа, якщо індекси першого та наступного чисел не однакові, потім поміняти місцем наступне та останнє з наступних чисел, потім збільшити i+=2 і після циклу повернути 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> |
>
>Вихід
Original list: [1, 2, 3, 4, 5] Reversed list: [5, 4, 3, 2, 1]>
Часова складність: O(log2(n)), де п це довжина даного масиву.
Допоміжний простір: О(1)
3. Зворотний список за допомогою вбудованих функцій Reversed() і Reverse().
Використання перевернутий() ми можемо змінити список і a list_reverseiterator створюється об’єкт, з якого ми можемо створити список за допомогою приведення типу list(). Або ми також можемо скористатися списком зворотний() функція перегортання списку на місці.
Python3
lst> => [> 10> ,> 11> ,> 12> ,> 13> ,> 14> ,> 15> ]> lst.reverse()> print> (> 'Using reverse() '> , lst)> print> (> 'Using reversed() '> ,> list> (> reversed> (lst)))> |
>
>Вихід
Using reverse() [15, 14, 13, 12, 11, 10] Using reversed() [10, 11, 12, 13, 14, 15]>
Часова складність: O(n), де n — довжина першого списку.
Допоміжні приміщення: O(1), оскільки він змінює вихідний список на місці, а не створює новий список.
4. Перевернути список за допомогою підходу двох вказівників
У цьому методі ми оголосимо два вказівники (в основному це початковий і кінцевий індекс, нехай «лівий» і «правий»). Під час сканування списку в кожній ітерації ми будемо міняти місцями елементи за індексами «left» і «right».
Покажчик «ліворуч» переміститься вперед, а покажчик «праворуч» — назад. Ми продовжимо процес до «перший» <«останній». Це буде працювати як для парної кількості елементів, так і для непарної кількості елементів.
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))> |
>
>Вихід
[7, 6, 5, 4, 3, 2, 1]>
Складність часу : O(N)
Допоміжний простір: О(1)
5. Перевернути список за допомогою функції insert().
У цьому методі ми не змінюємо список на місці (змінюємо вихідний список) і не створюємо жодної копії список . Замість цього ми продовжуємо вставляти елементи під 0-м індексом списку, це автоматично переверне список.
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)> |
>
>Вихід
[15, 14, 13, 12, 11, 10]>
Часова складність: O(n)
Допоміжний простір: O(n), де n - довжина списку.
6. Перевернути список за допомогою розуміння списку
У цій техніці список не сортується за місцем. Копія вихідного масиву не потрібна. Ми використовуємо розуміння списку щоб повернути масив і повернути список.
Ми знаходимо довжину масиву, а потім перебираємо його, використовуючи діапазон. Тепер, щоб замінити останній елемент на перший, ми віднімаємо довжину вихідного списку з індексу ітератора.
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)> |
>
>Вихід
[15, 14, 13, 12, 11, 10]>
Часова складність: O(n), де n — довжина оригінального списку.
Допоміжні приміщення: O(n),
7. Перевернути список за допомогою Numpy
Тут ми будемо використовувати пакет numpy :
Ініціалізація вхідного списку my_list Перетворення my_list на одновимірний масив numpy за допомогою np.array(my_list) Змінити порядок масиву за допомогою my_array[::-1] Перетворити зворотний numpy масив повертається до списку за допомогою .tolist()
Роздрукуйте перевернутий список
Python3
основний метод java
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)> |
>
>
Вихід:
[9, 8, 7, 6, 5, 4]>
Часова складність: O(n)
Допоміжні приміщення: O(n)
Ми обговорили багато способів перевернути список у Python. Ми також згадали їх часові складності та допоміжний простір, щоб дати вам правильне уявлення про швидкість обробки.
Сподіваюся, ця стаття допомогла вам зрозуміти шляхи як перевернути список python? і ви легко перевернете список у Python.