Python 정리

파이썬 - 튜플,딕셔너리

dawon-project 2025. 2. 6. 17:57

튜플 (  ) 

  • 여러 값을 함께 모을 수 있는 자료형
  • 리스트 관련 함수 사용 불가 -> append, pop, 등
  • 소괄호와 콤마 사용 (소괄호 생략 가능)
  • 형식 > 변수명 = (요소1, 요소2, ....)
  • 데이터 변경 불가능 (튜플 생성 후 추가/수정/삭제 불가능)
  • 인덱싱, 슬라이싱 가능 ex) a[0], a[:]
  • 튜플 더하기 , 곱하기 가능 -> 주소 값이 달라진다.
  • 튜플 길이 구하는 함수 -> len() ex) len(a)
  • 튜플.count(찾을 값) : 튜플 내에서 찾을 값의 개수를 반환함
  • 튜플.index(찾을 값, 시작 인덱스, 종료 인덱스) : 튜플 시작 ~ 종료 인덱스 사이에서 찾을 값이 처음 나타나는 위치를 반환
    -> 첫번째 인자만 적을시 튜플의 전체 범위를 기반으로 탐색

  • 튜플은 참조(주소)를 고정시키지만, 내부의 가변 객체(리스트)는 수정가능
    • 리스트 같은 가변 객체를 튜플에 넣으면 " 튜플의 일부 값은 변경 가능" 해짐
    • 완전한 불변성을 원하면, 튜플 안에는 가변 객체를 넣지 않는 것이 좋다.
    • 동일한 주소값을 가진다

 

딕셔너리 { }

  • 키(key)와 값(value)의 쌍으로 구성된 자료형
  • 키는 변경할 수 없는 자료형만 -> key에 리스트 사용 불가 / 튜플은 key로 사용 가능
     -> 변하지 않는 값(immutable) 인 경우만 key 로 사용 가능
  • 값은 자료형 무관
  • 형식 > 변수명 = {키1 : 값1, 키2 : 값2....}
  • 키와 값을 콜론( : )으로 묶음
  • key는 중복 사용 불가(고유한 값)
  • 인덱싱 또는 슬라이싱 기법 사용 불가
  • 값에 접근 방법
    • 딕셔너리[접근할_ 키] -> 딕셔너리에 없는 키일 경우 오류 발생
    • 딕셔너리.get(접근할_키) -> 딕셔너리에 없는 키일 경우 오류 발생 X ->None을 리턴
      딕셔너리.get(접근할_키, default 값) -> 찾지 못할 시에 리턴할 값을 default 값으로 명시할 수도 있다.
  • 삭제 -> del 키워드 사용

  • 딕셔너리 관련 함수 (keys, value, items)

  • 딕셔너리 요소 삭제 다른 함수

  • 그외 다른 딕셔너리 함수

 

딕셔너리와 반복문을 같이 사용할 시에 주의할점

  • 딕셔너리에서 특정 값을 가진 키/값 쌍을 삭제할 때, 반복문으로 순회하면서 삭제하면 다음과 같이 에러가 발생한다.

  • 주소 값까지 공유하는 얕은 복사의 경우 해결 가능 -> 권장 x 
    -> 헷갈리기 쉬움

  • copy() 함수를 사용해서 반복문을 실행할 때만 사용하는 경우 -> 해결 가능

  • 얕은 복사  : y = dict(x) 를 while문에 갇히게 되는 경우도 발생한다.-> X

  • 아래와 같은 경우 while문에 갇힌다.

 

튜플 VS 리스트 VS 딕셔너리