반응형
파이썬에서 iterable(참고)은 반복 가능한 모든 객체를 의미하며, 한 번에 하나씩 요소를 리턴할 수 있는 객체이다.
반면 sequence 자료형(짧게는 sequence)는 iterable의 하위 개념으로, 정수 인덱스로 개별 요소에 접근할 수 있는, 순서가 있는 자료형이다.
주요 차이점
1. 접근 방식
Sequence 자료형: indexing과 slicing이 가능하다.
my_list = [1, 2, 3]
print(my_list[0]) # 1
print(my_list[1:3]) # [2, 3]
Iterable: 반드시 indexing이 가능하지는 않다. 이런 경우 slicing도 불가능하다.
my_set = {1, 2, 3}
print(my_set[0])
TypeError: 'set' object is not subscriptable
2. 순서 보장 여부
Sequence 자료형: 요소의 순서가 항상 보장된다.
Iterable: 순서를 보장하지 않을 수도 있다 (ex: set, frozenset, 파이썬 3.6 이전 dict, generator(generator 구현은 순서 보장을 강제하지 않음))
3. 사례
Sequence 자료형: list,tuple, str, range 등
Iterable: sequence 자료형, set, dict, generator 등
결론
모든 sequence 자료형은 iterable이지만, 모든 iterable이 sequence 자료형은 아니다.
특성 | Iterable | Sequence |
순서 보장 여부 | 순서를 보장하지 않을 수 있음 | 순서를 항상 보장함 |
Indexing 가능 여부 | 지원하지 않을 수 있음 (set 등) | index를 통해 요소에 접근 가능 |
Slicing 지원 | 지원하지 않을 수 있음 | slicing 지원 |
예시 | set, dict, list, generator 등 | list, tuple, str, range 등 |
반응형
'Python > 문법' 카테고리의 다른 글
[Python] Module import로 이해하는 Namespace와 Scope (1) | 2025.01.09 |
---|---|
[Python] Unpacking의 다양한 예시 (2) | 2024.12.27 |
[Python] 제너레이터(Generator) (1) | 2024.12.14 |
[Python] 데코레이터(Decorator) 3 - 클래스형 데코레이터 (0) | 2024.12.12 |
[Python] 데코레이터(Decorator) 2 - 동적 데코레이터 (0) | 2024.12.12 |