ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [파이썬] 3. 컬렉션 타입의 이해 - 리스트(list)와 튜플 (tuple)
    파이썬 Python 2019. 11. 18. 01:15

    컬렉션 타입이란?

    파이썬에서는 다른 언어들처럼 배열이라는 참조 타입이 존재하지 않는다.

    대신 컬렉션 데이터 타입이 있다.

    컬렉션에는 list, tuple, dictionary, set이 있다.

     

    # 리스트 (list)

    • 복수개의 값을 담을 수 있는 데이터 구조.
    • 실생활에서 사용하는 리스트 (학생 리스트, 성적 리스트 등등)과 동일한 의미.
    • mutable 함 (가변성, 생성된 후에 변경 가능)

     

    리스트의 초기화 방법 세가지

    • [] 안에 값을 담아 생성
    • list() 함수로 생성
    • str.split() 함수로 생성
      • 구분자로 구분하여 리스트 반환 (기본적으로는 띄어쓰기를 구분자로 함)
    a = []
    print(a) #[]
    
    b = [1, 3, 5, 7]
    print(b) #[1, 3, 5, 7]
    
    c = ['korea', 'canada', 100, 200, [14, 24])
    print(c) #['korea', 'canada', 100, 200, [14, 24])

     

    a = 'hello world'
    b = list(a)
    print(b) #['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
    
    c = (1, 2, 3)
    d = list(c)
    
    print(d) #[1, 2, 3]

     

    a = 'hello world nice weather'
    b = a.split()
    c = a.split('w')
    
    print(b) #['hello', 'world', 'nice', 'weather']
    print(c) #['hello ', 'orld nice ', 'eather']

     

     

    리스트의 indexing과 slicing

    • 문자열의 인덱싱, 슬라이싱과 동일하게 동작
    • [i] -> i번째 원소를 반환
    • 음수 인덱스도 가능
    a = [1, 2, 3, 4, 5, 6, 7, 8]
    print(a[2])
    print(a[5])
    print(a[-1]) 
    
    print(a[4:7])
    print(a[:7])
    print(a[3:])
    print(a[:])
    print(a[1:7])

     

    결과값

     

     

    리스트 개별 아이템에 접근

    • 인덱스에 접근하여 값을 업데이트 가능
    a = 'hello world'
    print(a[0]) #h
    
    b = 'jello world'
    c = 'j' + a[1:]
    
    d = a.replace('h', 'j')
    
    print(a) #hello world
    print(b) #jello world
    print(c) #jello wrold
    print(d) #jello world

     

    a = [1, 2, 3, 4, 5]
    a[0] = 100
    a[-1] = 90
    
    print(a) #[100, 2, 3, 4, 90]

     

     

     

    list 멤버 함수

    • 생성된 리스트 객체에 동작하는 함수
    • append(): 리스트의 끝에 항복을 추가
    • extend(): 리스트를 연장. +=로도 가능
    • insert( , ): 원하는 위치에 항목 추가, 앞- 인덱스, 뒤 - 아이템(추가할 항목)
    • remove(): 값으로 항목 삭제
    • pop(): 인덱스로 지우고자 하는 아이템을 반환 후 삭제
    • index(): 찾고자 하는 값의 인덱스 반환
    • in 키워드: 리스트 내에 해당 값이 존재하는지 확인하여 true or false 로 반환. value in [list]
    • list 정렬
      • sort(): 리스트 자체를 내부적으로 정렬
      • sorted(): 리스트의 정렬된 복사본을 반환

     

    #list 멤버 함수
    a = [1, 2, 3, 4, 5]
    b = [6, 7, 8, 9]
    a.append(10)
    
    print(a) #[1, 2, 3, 4, 5, 10]
    
    a.extend(b) 
    print(a) #[1, 2, 3, 4, 5, 10, 6, 7, 8, 9] ; a += b와 동일하게 작동
    
    a.insert(1, 40)
    print(a) #[1, 40, 2, 3, 4, 5, 10, 6, 7, 8, 9]
    
    a.remove(40) 
    print (a) #[1, 2, 3, 4, 5, 10, 6, 7, 8, 9]
    
    d = a.pop(5)
    print(a) #[1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(d) #10
    
    a.index(3) #2
    

     

    #in 키워드
    
    a = [1, 2, 3, 4, 5, 10]
    b = 10
    c = 11
    
    d = b in a 
    e = c in a
    
    print(d) #True
    print(e) #False

     

    #list 정렬
    
    a = [9, 10, 7, 19, 1, 2, 20, 21, 7, 8]
    a.sort(reverse=True)
    b = sorted(a)
    
    print(a) #[21, 20, 19, 10, 9, 8, 7, 7, 2, 1]
    print(b) #[1, 2, 7, 7, 8, 9, 10, 19, 20, 21]

     

     

     

    #Tuple (튜플)

    • 리스트와 같이 복수개의 값을 갖는 컬렉션 타입
    • 하지만 생성된후 변경 불가능 (immutable)

     

    a = [1, 2, 3]
    b = (1, 2, 3)
    
    print(type(a))
    print(type(b))
    
    a[0] = 100
    print(a)
    
    b[0] = 100 #error
    print(b) 

     

     

    튜플은 할당된 아이템을 바꿀 수 없음

     

     

     

    tuple unpacking

    • 튜플의 값을 차례대로 변수에 대입할 수 있음.
    • 대입문에서 양 변의 시퀀스 길이가 같아야 함.

     

    a, b, c, d = 100, 200, 300, 400
    
    print(a, b, c, d) #100, 200, 300, 400

     

    반응형

    댓글

Designed by Tistory.