본문 바로가기
Algorithm

파이썬 문법 - 자료형(리스트, 튜플, 딕셔너리, 집합)

by Kwonys 2024. 4. 1.
728x90
반응형

1. 리스트

리스트 컴프리헨션

  • 2차원 리스트를 초기화할 때 효과적으로 사용
  • 특히 N X M 크기의 2차원 리스트를 한 번에 초기화 해야 할 때 유용
    • Good : array = [[0] * m for _ in range(n)]
  • 아래 bad 코드 : 전체 리스트 안에 포함된 각 리스트가 모두 같은 객체로 인식
    • bad : array = [[0]*m] * n

리스트 관련 기타 메서드

 

2. 튜플

  • 리스트와 유사하지만 다음과 같은 문법적 차이가 있음
    • 튜플은 한 번 선언된 값을 변경할 수 없음
    • 리스트는 대괄호 []를 이용하지만, 튜플은 소괄호 ()를 이용
  • 튜플은 리스트에 비해 상대적으로 공간 효율적

튜플을 사용하면 좋은 경우

  • 서로 다른 성질의 데이터를 묶어서 관리해야 할 때
    • 최단 경로 알고리즘에서는 (비용, 노트 번호)의 형태로 튜플 자료형을 주로 사용합니다.
  • 데이터 나열을 해싱(Hashing)의 키 값으로 사용해야 할 때
    • 튜플은 변경이 불가능하므로 리스트와 다르게 키 값으로 사용될 수 있음
  • 리스트보다 메모리를 효율적으로 사용해야 할 때

 

3. 딕셔너리

  • 키(Key)와 값(Value)의 쌍을 데이터로 가지는 자료형
    • 리스트나 튜플이 값을 순차적으로 저장하는 것과 대비
  • 변경 불가능한(Immutable) 자료형을 키로 사용할 수 있음
  • Hashin Table을 이용하므로 데이터 조회 및 수정에 있어서 O(1)의 시간에 처리할 수 있음
  • Key 데이터만 뽑아서 리스트 만들 때 : keys() 함수 
  • Value 데이터만 뽑아서 리스트 만들 때 : values() 함수

 

4. 집합

  • 중복 허용하지 않음(중복 제거에 유용)
  • 순서가 없음
  • 방법 1 : 리스트 혹은 문자열을 이용해서 초기화할 수 있음 (이때 set()함수 이용)
    • data = set([1, 1, 2, 3, 4, 4, 5])
  • 방법 2 : 중괄호 {} 안에 각 원소를 콤마를 기준으로 구분하여 삽입하여 초기화
    • data = { 1, 1, 2, 3, 4, 4, 5 }
  • 연산
    • 합집합(\), 교집합(&), 차집합(-) 연산
    • 새로운 원소 추가 - add(), 새로운 원소 여러개 추가 - update(), 특정한 값을 갖는 원소 삭제 - remove()
  • 데이터 조회 및 수정에 있어서 O(1)의 시간에 처리할 수 있음

 

자료형 특징

  • 리스트나 튜플은 순서가 있어 인덱싱 가능
  • 딕셔너리와 집합은 순서가 없어 인덱싱 불가

 

 

728x90
반응형