[Python] 파이썬에서 리스트 사용하기

    리스트란 관계가 있는 데이터를 벡터에 묶는 데이터 형이다. 파이썬의 리스트는 다른 언어의 리스트와 다르게 서로 다른 형들을 하나의 리스트로 관리할 수 있기 때문에 편리성이 있는 반면에 주의를 요할 필요도 있다. 개발을 많이 해본 사람은 잘 알겠지만, 컴퓨터의 인덱스 값은 0부터 시작한다는 점을 기억해 두었으면 한다. 즉 여기서 말하는 1번째라는 것은 2번째 데이터를 뜻한다.

     

    파이썬에서 리스트 다루기

     

    파이썬 리스트 사용법

    리스트변수 = [값1, 값2, ... 값n]

    파이썬의 리스트 사용법은 위와 같이 대괄호를 사용하며 안에 요소들을 쉼표(,) 형태로 구분한다.

     

    파이썬 리스트 선언

    # 리스트 변수 선언
    >>> list_data = []
    >>> type(list_data)
    <class 'list'>

    파이썬의 리스트 선언은 이와 같이 [] 값으로 초기화를 시키는 것이다. 파이썬의 변수는 값의 형태에 따라 해당 타입으로 변하는데 []만 선언하는 순간 class가 'list'라는 것을 알 수 있다.

     

    파이썬 리스트 만들기

    # 문자열 형태의 값들이 있는 리스트를 생성
    >>> str_data = ['동해물과','백두산이','마르고','닳도록']
    >>> type(str_data)
    <class 'list'>
    >>> str_data
    ['동해물과', '백두산이', '마르고', '닳도록']

    초기화를 하지 않고, 처음부터 데이터를 넣을 수 있다. str_data라는 변수에는 문자형 값이 4개 있는 리스트가 세팅된 것을 확인할 수 있다.

     

    파이썬 리스트 추가 (append)

    # '하느님이' 문자를 새로운 요소로 추가
    >>> str_data.append('하느님이')
    >>> str_data
    ['동해물과', '백두산이', '마르고', '닳도록', '하느님이']

    파이썬에 값을 추가하는 방법에는 우선 append가 존재한다. append로 값을 입력하면 마지막 부분에 값(하느님이)이 추가된 것을 확인할 수 있다.

     

    파이썬 리스트 추가 (insert)

    # 3번째 위치에 '하늘님' 추가
    >>> str_data.insert(3,'하늘님')
    >>> str_data
    ['동해물과', '백두산이', '마르고', '하늘님', '닳도록', '하느님이']

    원하는 위치게 요소를 추가하기 위해서는 insert를 사용한다. insert (위치, 값) 형태로 값을 입력하면 해당 위치에 값이 추가가 된다. 참고로 값은 0부터 시작을 한다. 동해물과 이전에 값을 넣고 싶으면 insert(0, 값) 형태로 입력하면 된다.

     

    파이썬 리스트 수정

    >>> str_data[3] = '닳도록'
    >>> str_data[4] = '하느님이'
    >>> str_data[5] = '보우하사'
    >>> str_data
    ['동해물과', '백두산이', '마르고', '닳도록', '하느님이', '보우하사']

    값을 수정하는 방법은 리스트[위치값] = 수정할 내용 이다. 위에 내용은 리스트를 수정하여 애국가를 원복하는 예제이다.

     

    파이썬 리스트 데이터 찾기(인덱싱)

    # 4번째 인덱스의 값을 가져온다
    >>> str_data[4]
    '하느님이'
    
    # 뒤에서 첫번째 인덱스 값을 가져온다
    >>> str_data[-1]
    '보우하사'

    값을 가져오는 방법은 수정에 쓰는 방식처럼 리스트[위치값]을 입력하면 된다. 여기서 위치값을 인덱스라 부른다.

     

     

    파이썬 리스트 슬라이싱 (Slicing)

    # 1번째부터 3번째 위치앞까지 가져온다
    >>> str_data[1:3]
    ['백두산이', '마르고']
    
    # 뒤에서 2번째부터 마지막까지 가져온다
    >>> str_data[-2:]
    ['하느님이', '보우하사']
    
    # 2번째부터 뒤에서 2번째앞까지 가져온다
    >>> str_data[2:-2]
    ['마르고', '닳도록']

    리스트를 자르는 행위를 슬라이싱이라 한다. 여태까지 인덱스를 하나만 썼다면, 슬라이스를 위해서는 2개의 값을 콜론 사이에 입력을 해야 한다. 콜론에 값을 지정하지 않을 경우 콜론 기준으로 왼쪽에 값을 지정하지 않으면 시작부터 콜론 기준 우측에 값을 지정하지 않으면, 마지막까지를 의미한다.

     

    리스트 안에 리스트 생성 (리스트 더하기)

    # 1부터 5까지 있는 정수형 리스트 생성
    >>> int_data = [1,2,3,4,5]
    >>> int_data
    [1, 2, 3, 4, 5]
    
    # str_data(문자형 리스트)와 int_data(정수형 리스트)의 합친 결과를 merge_list라는 변수에 담는다
    >>> merge_list = str_data + int_data
    >>> merge_list
    ['동해물과', '백두산이', '마르고', '닳도록', '하느님이', '보우하사', 1, 2, 3, 4, 5]

    리스트는 자유로운 연산이 가능하고, 처음에 리스트를 소개할 때 다른 형태를 값들을 담을 수 있다 하였다 위 예제를 보면 알 수 있듯 문자형 리스트와 정수형 리스트, 즉 서로 다른 형태의 리스트를 합칠 수 있다.

     

    리스트 길이 구하기

    >>> len(merge_list)
    11

    len메소드를 사용해서 리스트 길이 즉 요소의 개수를 알 수 있다.

     

    리스트를 반복하기

    # merge_list를 2번 반복하여, merge_list2에 대입한다
    >>> merge_list2 = merge_list * 2
    
    # merge_list2의 변수를 확인하면 순서대로 2번 반복된 것을 알 수 있다.
    >>> merge_list2
    ['동해물과', '백두산이', '마르고', '닳도록', '하느님이', '보우하사', 1, 2, 3, 4, 5, '동해물과', '백두산이', '마르고', ' 닳도록', '하느님이', '보우하사', 1, 2, 3, 4, 5]
    
    # len으로 길이를 확인하면 기존 11에서 22 즉 2배 늘어났다는 것을 확인할 수 있다.
    >>> len(merge_list2)
    22

    리스트 반복은 단순하게 * 양수 값으로 반복할 수 있다.

     

    리스트값 삭제하기

    >>> merge_list
    ['동해물과', '백두산이', '마르고', '닳도록', '하느님이', '보우하사', 1, 2, 3, 4, 5]
    
    # 6번째의 값을 삭제한다.
    >>> del merge_list[6]
    
    >>> merge_list
    ['동해물과', '백두산이', '마르고', '닳도록', '하느님이', '보우하사', 2, 3, 4, 5]

     

    연관포스팅

    2020/12/23 - [Language/Python] - [Python] 파이썬에서 튜플(Tuple) 다루기, 튜플 써야 할 때

     

     

     

    반응형

    댓글

    Designed by JB FACTORY