• 2020. 6. 17.

    by. 윈썸지니

    반응형

    출처 : Pixabay

     

    이번 포스팅은 리스트 자료형에 관련된 함수, 메소드에 관한 마지막 포스팅 입니다.

     

    ●  리스트의 인덱스 값 찾기

     

    리스트에서 특정 원소의 인덱스를 알고 싶을 때 사용합니다. 

    같은 요소값이 여러 개 일 경우는 첫번째 값의 위치를 알려 줍니다.

    Index( 요소값 ) 의 형식으로 사용합니다.

    >>> x = [1, [3, 4], 5, [6, 7, [8, 9]], 10]

    ## 5의 인덱트 값이므로 2 입니다.
    >>> x.index(5)
    2
    >>> x.index([3,4])
    1

     

    중첩리스트는 지원하지 않고 1 차원만 지원합니다.

    >>> x.index([8,9])
    Traceback (most recent call last):
      File "<pyshell#29>", line 1, in <module>
        x.index([8,9])
    ValueError: [8, 9] is not in list

     

    같은 값이 여러 개 일 경우는 처음 인덱스 값을 반환합니다.

    >>> x = [1,2,3,4,3,5]
    >>> x.index(3)
    2

     

    리스트에 없는 값일 경우는 오류를 발생합니다.

    -1 이라도 반환하는 것과 오류를 반환하는 것은 큰 차이가 있습니다.

    -1을 반환하는 것은 오류가 아니기 때문입니다.

     

    왜 큰 차이인지는 프로그램 작성시에 오류 일 경우 프로그램의 동작을 멈추도록 보통 프로그램 하는데 이때  값이 없더라도 프로그램은 계속 동작을 원할 경우 프로그램 코드에 반영하여 작성하기 때문에 반환 값이 오류인지? 아닌지는 중요한 내용입니다.

    여기서는 이 정도만 기억하고 넘어가주세요.

    >>> x.index(10)
    Traceback (most recent call last):
      File "<pyshell#32>", line 1, in <module>
        x.index(10)
    ValueError: 10 is not in list
    >>> 

     

    ●  리스트의 같은 요소값의 개수

     

    리스트에서 특정 요소 값의 개수를 반환해 줍니다.

    사용 방법은 count(요소값) 입니다.

    >>> x = [1, 2, 3, 4, 3, 5]
    ## 3이 2개 있으므로 2를 반환합니다.
    >>> x.count(3)
    2
    ## 5는 1개 있으므로 1을 반환합니다.
    >>> x.count(5)
    1
    ## 10의 값은 없으므로 0을 반환합니다. 오류를 반환하지 않고 0을 반환합니다.
    >>> x.count(10)
    0
    >>> x = [1, [3, 4], 5, [6, 7, [8, 9]], 10]
    ## 중첩 리스트에서 찾기 예제 입니다.
    >>> x.count( [3,4])
    1
    ## 1차원에서 찾기 때문에 0을 반환합니다.
    >>> x.count([8,9])
    0
    ## 1차원에서 찾기 때문에 1이 여러 개 있어도 1개를 반환합니다.
    >>> x = [1, [1,2], [1,4], 2, 3]
    >>> x.count(1)
    1

     

    ● 리스트의 길이

    포스팅하면서 예제에서 쓰인 적이 있는 len 에 관한 내용입니다. 리스트의 길이를 반환합니다.

    정확히는 리스트의 전체 개수 입니다.

    문자열에서는 1자가 1의 크기를 같지만 리스트는 중첩 리스트도 있기 때문에 정확히는 원소의 개수라고 생각하면 됩니다.

    >>> x = [1, 2, 3, 4, 3, 5]
    >>> len(x)
    6
    ## 중첩 리스트는 1개로 계산하기 때문에 5를 반환합니다.
    >>> x = [1, [1,2], [1,4], 2, 3]
    >>> len(x)
    5
    ## 비교를 위해 문자열(string)에 관한 예제 입니다.
    >>> x = "0123456789"
    >>> len(x)
    10
    >>> x = 'abcdef'
    >>> len(x)
    6
    >>> x = 'abc def'
    >>> len(x)
    7
    >>> 

     

    문자열과 리스트에 관련된 메소드나 함수들이 가장 많기 때문에 이제 자료형에 대해서는 거의 끝 마친거나 다름없습니다.

    다음 포스팅에서는 나머지 자료형에서 다루지 않았던 연산 등에 대해 다룰 예정이지만, 그렇게 많지 않습니다.

    반응형