• 2020. 6. 14.

    by. 윈썸지니

    반응형

    출처 : pixabay

    지난 포스팅에서는 리스트 요소를 추가하는 방법에 대해 알아보았습니다.

    추가를 하였으니, 수정 및 삭제하는 방법에 대해 포스팅해 봅니다.

     

    리스트 요소 수정

     

    리스트 요소 수정은 간단합니다.

    인덱스로 접근하여 변수 대입하듯이 하면 됩니다.

    예제를 살펴 보지요.

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

    ## 세번째 요소 210으로 변경해 봅니다. 인덱스로 접근하여 대입합니다.

    >>> x[2]=10

    >>> x

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

    >>>

     

    리스트 요소 삭제

     

    리스트 요소를 제거하는 방법입니다. 아래 방법으로 제거 가능합니다.

    쓰임새를 알아 보겠습니다.

    pop() : 특정 인덱스의 요소 하나를 삭제합니다.
    del : pop과 비슷한 기능으로 인덱스로 접근한 요소를 삭제합니다. 사용방법이 조듬 다릅니다.
    remove() : 특정 값으로 삭제 가능합니다.
    clear() : 리스트의 모든 요소를 삭제합니다.

    pop( 인덱스) 로 사용하며 괄호안에 아무 값도 없으면 마지막 값을 삭제합니다. 결과로는 삭제되는 요소 값을 보여 줍니다.

    메소드 이름이 delete?가 아니고 pop 인 이유가 추출을 하면서 삭제를 하므로 그런 것인가?라고 생각해 봅니다.

    예제로 확인해 봅니다.

    >>> x = [1, 2, 10, 4, 5, 6, 3, 7]
    ## 아무값도 안 주었더니 마지막 값인 7을 삭제한다는 반환 값을 돌려 줍니다.
    ## 다른 메소드 들은 아무 결과가 없었는데 결과값을 반환하고 삭제합니다.
    >>> x.pop()
    7
    ## 7을 삭제하고 x 리스트에는 7을 제외한 요소 값들이 남아 있습니다.
    >>> x
    [1, 2, 10, 4, 5, 6, 3]
    ## 인덱스 2의 값인 10을 삭제합니다.
    >>> x.pop(2)
    10
    >>> x
    [1, 2, 4, 5, 6, 3]
    ## -1은 그동안 학습한 것으로 예상되듯이 마지막 요소값을 가리킵니다. 마지막 요소값이 3 이므로 3을 반환합니다.
    >>> x.pop(-1)
    3
    >>> x
    [1, 2, 4, 5, 6]

     

    이번엔 del 함수를 사용하여 삭제 합니다.

    사용법은 str.del() 의 형식은 아닙니다.

    del x[0] 형식입니다.

    예제를 통해 확인 합니다.

    >>> x = [1, 2, 3, 4, 5, 6, 7]
    ## 두번째 요소 값을 제거 합니다.
    >>> del x[1]
    >>> x
    [1, 3, 4, 5, 6, 7]

    ## 여러 개를 한꺼번에 제거하려면 슬라이싱을 응용하여 삭제 할 수 있습니다.
    ## 4번째 부터 모두 삭제 합니다. 즉 5, 6, 7 을 삭제합니다.
    >>> del x[3:]
    >>> x
    [1, 3, 4]
    >>>

     

    지금까지는 인덱스를 사용하여 요소의 몇 번째 값을 삭제하는 방법인데 값으로 접근하여 삭제하는 방법은 없을까?라는 궁금증이 발생할 것입니다.

    이 기능을 하는 것이 remove 입니다.

    하지만 remove는 첫번째 값만 삭제합니다. 같은 값이 여러 개 있을 경우 삭제하고 싶을 때는 remove 여러 번 사용하거나, 간단한 함수를 구현하여 삭제합니다.

     

    사용 방법은 remove( 삭제할 값 ) 입니다.

    예제를 통해 알아봅니다.

    >>> x = [1, 2, 4, 5, 2,2, 4, 5 ]
    ## 2의 값을 삭제합니다. 맨 처음으로 만나는 2 만 삭제 됩니다.
    >>> x.remove(2)
    >>> x
    [1, 4, 5, 2, 2, 4, 5]
    ## 다시 2를 삭제합니다. 5 다음의 2만 삭제 됩니다.
    >>> x.remove(2)
    >>> x
    [1, 4, 5, 2, 4, 5]
    ## 다시 2를 삭제합니다. 2가 모두 삭제 되었습니다.
    >>> x.remove(2)
    >>> x
    [1, 4, 5, 4, 5]
    >>>

    리스트의 요소를 모두 삭제하여 빈 리스트로 만드는 방법입니다.

    clear() 를 사용합니다.

    예제를 통해 알아봅니다.

    >>> x = [1, 4, 5, 4, 5]

    ## 모든 요소를 삭제합니다.
    >>> x.clear()
    >>> x
    []
    ## del 로도 모든 요소를 삭제 할 수 있습니다. 아래와 같이 사용합니다.
    >>> x = [1, 4, 5, 4, 5]
    >>> del x[:]
    >>> x
    []
    >>>

     

    del() 만 알고 있어도 리스트의 요소를 삭제 할 수 있습니다.

    Remove() del로 대체 할 수 있는 예제 입니다.

    >>> x = [ 1, 4, 5, 4, 3]
    ## index() 함수는 아직 다루지 않았지만 요소값의 인덱스 번호를 알려 줍니다.
    >>> x.index(4)
    1
    ## del을 이용해 remove() 처럼 사용 가능합니다.
    ## x.index(4) = 1 입니다. 즉 x[x.index(4)] 는 x[1] 과 같습니다.
    >>> del x[x.index(4)]
    >>> x
    [1, 5, 4, 3]
    >>> x = [ 1, 4, 5, 4, 3]
    >>> x.remove(4)
    >>> x
    [1, 5, 4, 3]
    >>>

    지금까지 리스트의 요소 수정 및 삭제 방법에 대해 알아 보았습니다.

    다음 포스팅은 리스트 연산자 와 나머지 유용한 메소들에 대한 포스팅 예정입니다.

    반응형