Container, Iterable, Sequence, Mapping

About_work·2024년 3월 18일
0

python 기초

목록 보기
54/56
  • Python에서 Container, Iterable, Sequence, Mapping은 컬렉션(types 모듈에서 찾을 수 있는)과 관련된 추상 베이스 클래스(ABCs)

1. Container

정의:

  • Container는 in 연산자를 사용해 멤버십 테스트를 지원하는 모든 데이터 구조를 의미

예시 타입:

  • 모든 시퀀스 타입 (list, tuple, str)
  • 모든 매핑 타입 (dict)
  • 집합 타입 (set, frozenset)

2. Iterable

정의:

  • Iterable은 for 루프를 사용하여 순회할 수 있는 모든 객체를 의미
  • iter() 함수를 사용하여 반복자를 반환할 수 있는 모든 객체

예시 타입:

  • 모든 시퀀스 타입 (list, tuple, str)
  • 모든 매핑 타입 (dict)
  • 집합 타입 (set, frozenset)
  • 파일 객체, 제너레이터 객체 등

3. Sequence

정의:

  • Sequence는 정렬된 요소의 컬렉션으로, 인덱스를 통해 접근할 수 있는 iterable
  • 시퀀스는 반복 가능하며, 특정 위치에 있는 항목을 가져올 수 있습니다.
  • 또한, 시퀀스는 길이를 가지며, 요소들은 순서를 가지고 있습니다.

예시 타입:

  • list: 변경 가능한 시퀀스
  • tuple: 변경 불가능한 시퀀스
  • str: 문자열 시퀀스
  • bytes, bytearray, memoryview: 바이트 시퀀스

4. Mapping

정의:

  • Mapping은 키와 값의 쌍으로 이루어진 컬렉션

예시 타입:

  • dict: 기본 매핑 타입으로, 키와 값을 매핑한 딕셔너리입니다.

  • 이러한 추상 베이스 클래스들은 collections.abc 모듈에 정의되어 있으며, Python의 데이터 구조가 지원하는 연산과 행위를 추상화합니다. 특정 객체가 특정 타입(예: Iterable, Container 등)인지 확인하기 위해 isinstance 함수와 함께 해당 ABC를 사용할 수 있습니다. 예를 들어, 어떤 객체가 iterable인지 확인하려면 isinstance(obj, Iterable)을 사용할 수 있습니다.
profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글