logo

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에서 목록 뒤집기

이 기사에서 다룰 접근 방식은 다음과 같습니다.

  • 사용하여 슬라이스 기술
  • 현재 숫자와 마지막 숫자를 한 번에 바꿔 목록 반전
  • reverse() 및 뒤집다() 내장 기능
  • 사용하여 두 포인터 접근 방식
  • 사용하여 끼워 넣다() 기능
  • 사용 목록 이해
  • 다음을 사용하여 목록 반전 넘피

1. 역방향 슬라이싱 기법을 사용한 목록

이 기술에서는 목록의 복사본이 만들어지며 목록은 제자리에 정렬되지 않습니다. 복사본을 만들려면 기존 요소를 모두 담을 수 있는 더 많은 공간이 필요합니다. 이로 인해 더 많은 메모리가 소모됩니다. 여기서 우리는 슬라이스 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))>

>

>

산출

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

시간 복잡도: 에)
보조 공간: 에)

2. 현재 숫자와 마지막 숫자를 한 번에 바꿔서 목록 반전

접근 방식은 다음과 같습니다.

arr[]인 경우 배열의 길이가 1이면 크기를 지정하고 arr을 반환합니다. 배열의 elif 길이가 2이면 첫 번째 숫자와 마지막 숫자를 바꾸고 arr을 반환합니다. 그렇지 않으면 i=0으로 초기화합니다. 크기//2에서 i를 반복한 다음 첫 번째와 다음 숫자 인덱스가 동일하지 않으면 첫 번째 현재 숫자와 마지막 현재 숫자를 바꾸고, 다음 숫자의 다음과 마지막 숫자를 바꾼 다음 i+=2를 증가시키고, 반복 후 arr을 반환합니다.

자바 역방향 문자열

파이썬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>

>

>

산출

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

시간 복잡도: O(log2(n)), 여기서 N 주어진 배열의 길이입니다.
보조 공간: 오(1)

3. Reversed() 및 Reverse() 내장 함수를 사용한 역방향 목록

사용 역방향() 우리는 목록을 뒤집을 수 있고 list_reverseiterator 객체가 생성되면 list() 유형 캐스팅을 사용하여 목록을 생성할 수 있습니다. 또는 목록을 사용할 수도 있습니다. 뒤집다() 목록을 제자리에서 뒤집는 기능입니다.

파이썬3




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. 2점 접근 방식을 사용하여 목록 뒤집기

이 메서드에서는 두 개의 포인터(기본적으로 시작 인덱스와 끝 인덱스, '왼쪽'과 '오른쪽')를 선언합니다. 목록을 스캔하는 동안 각 반복에서 '왼쪽'과 '오른쪽' 인덱스의 요소를 교환합니다.

'왼쪽' 포인터는 앞으로 이동하고 '오른쪽' 포인터는 뒤로 이동합니다. '처음' <'마지막'까지 이 과정을 계속하겠습니다. 이는 짝수 요소와 홀수 요소 모두에 적용됩니다.

파이썬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))>

>

>

산출

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

시간 복잡도 : 에)
보조 공간: 오(1)

5. insert() 함수를 사용하여 목록 반전

이 방법에서는 목록을 제자리에 되돌리거나(원본 목록 수정) 목록의 복사본을 만들지 않습니다. 목록 . 대신 목록의 0번째 인덱스에 항목을 계속 삽입하면 목록이 자동으로 반전됩니다.

파이썬3




# 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), 여기서 n은 목록의 길이입니다.

6. 목록 이해를 사용하여 목록 뒤집기

이 기술에서는 목록이 제자리에 정렬되지 않습니다. 원본 배열의 복사본은 필요하지 않습니다. 우리는 사용 목록 이해 배열을 뒤집고 목록을 반환합니다.

배열의 길이를 찾은 다음 범위를 사용하여 반복합니다. 이제 마지막 요소를 첫 번째 요소로 대체하기 위해 반복자의 인덱스에서 원래 목록의 길이를 뺍니다.

파이썬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)>

>

>

산출

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

시간 복잡도: O(n), 여기서 n은 Original_list의 길이입니다.
보조 공간: 에),

7. Numpy를 사용하여 목록 뒤집기

여기서 우리는 사용할 것입니다 numpy 패키지 :

입력 목록 my_list를 초기화합니다. np.array(my_list)를 사용하여 my_list를 1D numpy 배열로 변환합니다. my_array[::-1]를 사용하여 배열 순서를 반대로 바꿉니다. 멍청하다 .tolist()를 사용하여 목록으로 다시 배열

역방향 목록 인쇄

파이썬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)>

>

>

산출:

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

시간 복잡도: 에)
보조 공간: 에)

우리는 Python에서 목록을 뒤집는 여러 가지 방법을 논의했습니다. 우리는 또한 처리 속도에 대한 올바른 아이디어를 제공하기 위해 시간 복잡성과 보조 공간을 언급했습니다.

이 기사가 방법을 이해하는 데 도움이 되었기를 바랍니다. 파이썬 목록을 뒤집는 방법은 무엇입니까? Python에서는 목록을 쉽게 뒤집을 수 있습니다.