큐 데이터 구조는 매우 잘 알려진 데이터 구조이며, Python의 목록은 일반적으로 Python 목록의 끝에 요소를 추가합니다. 큐 데이터 구조를 구현하려면 목록에서 맨 앞의 요소를 제거할 수 있어야 합니다. 목록의 첫 번째 요소를 제거하는 방법을 논의해 보겠습니다.
방법 1: pop()을 사용하여 Python의 목록에서 요소 제거
이 pop() 메소드는 i를 제거하고 인쇄합니다.일목록의 요소입니다. 이 방법은 이 작업을 수행하는 데 사용 가능한 다른 옵션 중에서 주로 사용됩니다. 이렇게 하면 원래 목록이 변경됩니다.
파이썬3
# initializing list> test_list>=> [>1>,>4>,>3>,>6>,>7>]> # Printing original list> print>(>'Original list is : '> +> str>(test_list))> # using pop(0) to perform removal> test_list.pop(>0>)> # Printing modified list> print>(>'Modified list is : '> +> str>(test_list))> |
>
>
출력 :
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
방법 2: del list[]를 사용하여 Python의 목록에서 요소 제거
이는 전면 삭제를 수행하는 대체 방법일 뿐입니다. 이 del 연산자는 목록 요소를 제자리에서 제거하고 목록 크기를 1씩 줄입니다.
파이썬3
# initializing list> test_list>=> [>1>,>4>,>3>,>6>,>7>]> # Printing original list> print>(>'Original list is : '> +> str>(test_list))> # using del list[0] to perform removal> del> test_list[>0>]> # Printing modified list> print>(>'Modified list is : '> +> str>(test_list))> |
>
>
출력 :
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
방법 3: 슬라이싱을 사용하여 Python의 목록에서 요소 제거
파이썬 슬라이싱 이 문제를 해결할 수 있는 또 다른 접근 방식은 두 번째 요소부터 마지막 요소까지 목록을 분할하여 빈 목록에 할당할 수 있습니다. 이는 위의 두 가지 방법처럼 in-place 변환을 하지 않습니다.
파이썬3
# initializing list> test_list>=> [>1>,>4>,>3>,>6>,>7>]> # Printing original list> print>(>'Original list is : '> +> str>(test_list))> # using slicing to perform removal> res>=> test_list[>1>:]> # Printing modified list> print>(>'Modified list is : '> +> str>(res))> |
>
>
출력 :
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
방법 4: 다음을 사용하여 Python의 목록에서 요소 제거 무엇에 대해서() + 팝레프트()
이는 이 특정 작업을 수행하는 덜 알려진 방법으로 목록을 deque로 변환한 다음 왼쪽 팝을 수행하여 목록 앞의 요소를 제거합니다.
파이썬3
from> collections>import> deque> # initializing list> test_list>=> [>1>,>4>,>3>,>6>,>7>]> # Printing original list> print>(>'Original list is : '> +> str>(test_list))> # using deque() + popleft() to> # perform removal> res>=> deque(test_list)> res.popleft()> # Printing modified list> print>(>'Modified list is : '> +> str>(>list>(res)))> |
>
>
출력 :
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
방법 5: Remove()를 사용하여 Python의 목록에서 요소 제거
그만큼 제거하다() 함수를 사용하면 목록에서 지정된 값의 첫 번째 인스턴스를 제거할 수 있습니다. 목록의 최상위 항목을 제거하는 데 사용할 수 있습니다. 목록에서 첫 번째 멤버를 선택하고 이를 제거() 함수에 제공합니다.
파이썬3
test_list>=> [>1>,>4>,>3>,>6>,>7>,>10>]> # Printing original list> print>(>'Original list is : '> +> str>(test_list))> # Remove first element from list in python> test_list.remove(test_list[>0>])> # Printing modified list> print>(>'Modified list is : '> +> str>(test_list))> |
>
>
출력 :
배열 정렬 자바
Original list is : [1, 4, 3, 6, 7, 10] Modified list is : [4, 3, 6, 7, 10]>
방법:6 목록 이해 사용
접근 방식을 구현하기 위한 단계별 알고리즘
- 목록 test_list
- 빈 목록 초기화 new_list
- 두 번째 요소부터 시작하여 test_list의 요소를 반복합니다.
ㅏ. 현재 요소를 new_list에 추가합니다. - new_list 반환
파이썬3
# initializing list> test_list>=> [>1>,>4>,>3>,>6>,>7>]> # remove first element using list comprehension> new_list>=> [x>for> x>in> test_list[>1>:]]> # print the new list> print>(>'Modified list is : '> +> str>(new_list))> |
>
>산출
Modified list is : [4, 3, 6, 7]>
시간 복잡도:
이 접근 방식의 시간 복잡도는 O(n)입니다. 여기서 n은 입력 목록 test_list의 요소 수입니다.
이는 알고리즘이 건너뛴 첫 번째 요소를 제외하고 목록의 각 요소를 한 번 반복하기 때문입니다.
보조 공간:
이 접근 방식의 보조 공간 복잡도는 O(n)입니다. 여기서 n은 입력 목록 test_list의 요소 수입니다.
이는 알고리즘이 잠재적으로 test_list와 동일한 수의 요소를 가질 수 있는 수정된 버전의 입력 목록을 저장하기 위해 새 목록 new_list를 생성하기 때문입니다.
numpy.delete() 사용:
- numpy 라이브러리 가져오기
- 수정할 목록에서 numpy 배열을 만듭니다.
- numpy.delete() 함수를 사용하여 배열의 첫 번째 요소를 제거합니다.
- 수정된 numpy 배열을 다시 목록으로 변환
- 원본 목록과 수정된 목록 인쇄
파이썬3
import> numpy as np> # initializing list> test_list>=> [>1>,>4>,>3>,>6>,>7>]> # Printing original list> print>(>'Original list is : '> +> str>(test_list))> # Convert list to numpy array> np_array>=> np.array(test_list)> # Use numpy.delete() to remove first element> modified_np_array>=> np.delete(np_array,>0>)> # Convert numpy array back to list> modified_list>=> modified_np_array.tolist()> # Printing modified list> print>(>'Modified list is : '> +> str>(modified_list))> |
>
>
산출:
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
시간 복잡도:
numpy.delete() 함수의 시간 복잡도는 O(n)입니다. 여기서 n은 numpy 배열의 요소 수입니다. 또한 목록을 numpy 배열로 변환하고 다시 목록으로 변환하므로 이 접근 방식의 전체 시간 복잡도는 O(n)입니다.
공간 복잡도:
이 접근 방식의 공간 복잡도는 O(n)입니다. 여기서 n은 입력 목록 test_list의 요소 수입니다. 이는 numpy 배열이 생성되었기 때문입니다.