• 2020. 6. 12.

    by. 윈썸지니

    반응형

    출처 : pixabay

    파이썬에서 리스트의 요소를 특정 부분만 추출하기 원할 때 사용합니다.

    문자열의 슬라이싱과 동일합니다.

     

    문법은 리스트변수[시작인덱스:종료인덱스:step] 입니다.

    종료는 포함하지 않습니다. 인덱스는 0 부터 시작입니다.

     

    변수[num1:] num1 이상 부터 ~

    변수[:num2] ~ num2 미만까지

    변수[num1:num2} num1 이상 ~ num2 미만

    변수[::-1] 은 거꾸로 나열합니다.

    Stepstep 개수 만큼 띄고 입니다.

     

    예제를 통해 보면 이해가 더 빠를 겁니다.

    >>> x = [0,1,2,3,4,5,6,7,8,9]
    ## 0 ~ 4 인 요소 입니다.
    >>> x[:5]
    [0, 1, 2, 3, 4]
    ## 4 요소 인덱스 부터 입니다.
    >>> x[4:]
    [4, 5, 6, 7, 8, 9]
    ## 인덱스 4 부터 6 까지 입니다.
    >>> x[4:7]
    [4, 5, 6]
    ## 거꾸로 나열합니다.
    >>> x[::-1]
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    ## 인덱스 1 부터 8 까지 중 3개씩 건너서 출력합니다.
    >>> x[1:9:3]
    [1, 4, 7]
    ## 인덱스 1 부터 8 까지 중 2개씩 건너서 출력합니다.
    >>> x[1:9:2]
    [1, 3, 5, 7]
    ## 거꾸로 나열해서 인덱스 7 부터 4 까지 입니다. 거꾸로 이므로 종료 인덱스가 하나 더 작은 것은 인덱스가 4인 것입니다.
    >>> x[7:3:-1]
    [7, 6, 5, 4]
    ## 거꾸로 나열해서 인덱스 9 부터 끝까지 중 2 개씩 건너서 출력합니다.
    >>> x[9::-2]
    [9, 7, 5, 3, 1]
    >>>

     

    리스트의 인덱스가 -1 값이면 맨 끝 요소값을 나타낸다고 이전 포스팅에서 설명하였습니다.

    슬라이싱 에서도 인덱스를 음수 값으로 표현할 수 있습니다.

    >>> x = [0,1,2,3,4,5,6,7,8,9]
    ## 인덱스 -1은 맨 끝자리 이므로 인덱스 9 의 값과 동일합니다.
    >>> x[-1]
    9
    ## 인덱스 3 에서 맨끝자리 9 미만 이므로 8 까지 추출합니다.
    >>> x[3:-1]
    [3, 4, 5, 6, 7, 8]
    ## 인덱스 3 에서 맨 끝자리에서 2번째인 인덱스 8 미만 이므로 7 까지 추출합니다.
    >>> x[3:-2]
    [3, 4, 5, 6, 7]
    ## 맨 끝자리에서 2번째인 인덱스 8 에서 인덱스 3 이므로 값이 없습니다.
    >>> x[-2:3]
    []
    ## 거꾸로 맨 끝자리에서 2번째인 인덱스 8 에서 인덱스 3 이 거꾸로 미만이므로 4 까지의 값을 추출합니다.
    >>> x[-2:3:-1]
    [8, 7, 6, 5, 4]
    >>> 

    리스트는 리스트를 포함 할 수 있다고 하였습니다.

    이 중첩된 리스트 접근 방식도 이전 포스팅에 있습니다.

     

    그럼 슬라이싱은 어떻게 될까요? 동일한 방법입니다.

    예제를 통해 알아봅니다.

    아래와 같이 중첩된 리스트를 선언해 봅니다.

    각 요소를 접근하기 위한 인덱스를 표현 하였습니다.

    >>> x = [1, 3, 5, [ 2, 4, 6], 7, 9, [8,10,12, 14]]
    >>> x[3]
    [2, 4, 6]
    ## 중첩 리스트의 4의 값을 추출합니다.
    >>> x[3][1]
    4
    ## 중첩 리스트의 12의 값을 추출합니다.
    >>> x[6][2]
    12
    >>> x[2:6]
    [5, [2, 4, 6], 7, 9]
    ## 중첩 리스트 슬라이싱 방법 입니다. 2차 리스트를 같은 방법으로 사용합니다.
    >>> x[3][1:2]
    [4]
    >>> x[6][1:3]
    [10, 12]
    ## 중첩 리스트 중 거꾸로 나열해 봅니다.
    >>> x[6][::-1]
    [14, 12, 10, 8]
    >>> 

     

    이상으로 리스트 나누기, 슬라이싱에 대해 포스팅 하였습니다.

    다음 포스팅은 리스트에 관련된 메소드 들과 연산하는 방법에 대해 포스팅 예정 입니다.

    반응형