
지곰 점심시간이지만.. 오늘이 크리스마스 이브고 오늘부터 토요일까지 주루룩 일정이 잡혀서 블로그 할 시간이 부족해서 발등에 불 두 덩이 달고있는 기분이에요... 배운건 정리해야겠고... 배는 고프고 그래서 급하게 호다닥 정리합니다. 그래서 말이 조금 짧을수도 있어용... 다둘 맛점!
🌀 이터러블(Iterable)이란?
파이썬에서 이터러블(Iterable)은 반복(iteration) 가능한 객체를 의미
간단히 말해 한 번에 하나씩 값을 반환하며 순회할 수 있는 객체를 이터러블이라고 함
이터러블은 for 문과 같은 반복문에서 사용할 수 있으며 iter() 함수를 통해 이터레이터(iterator)로 변환할 수도 있음
📋 이터러블의 예
파이썬에는 다양한 이터러블 객체가 있음
이를 크게 시퀀스 타입과 컬렉션 타입으로 나눌 수 있음
1. 시퀀스 타입 (Sequence Type) 🔢
순서가 있는 자료형으로 데이터가 인덱스에 따라 순차적으로 저장
- 리스트 (list): [1, 2, 3]
- 튜플 (tuple): (1, 2, 3)
- 문자열 (str): 'hello'
- 레인지 (range): range(5) (0부터 4까지)
2. 컬렉션 타입 (Collection Type) 📦
순서가 없거나 특별한 구조로 데이터를 저장하는 자료형
- 집합 (set): {1, 2, 3}
- 딕셔너리 (dict): {"a": 1, "b": 2}
- 딕셔너리는 다음과 같은 방식으로 이터러블하게 사용할 수 있음
- dict.keys() : 키(key)를 이터러블로 반환
- dict.values() : 값(value)을 이터러블로 반환
- dict.items() : (키, 값) 쌍을 이터러블로 반환
- 딕셔너리는 다음과 같은 방식으로 이터러블하게 사용할 수 있음
✅ 이터러블 확인 방법
이터러블 객체인지 확인하려면 collections.abc.Iterable 모듈이나 iter() 함수를 사용할 수 있음
from collections.abc import Iterable
# 리스트는 이터러블
print(isinstance([1, 2, 3], Iterable)) # True
# 정수는 이터러블이 아님
print(isinstance(123, Iterable)) # False
# iter() 함수를 통해 이터레이터를 생성할 수 있으면 이터러블
iter([1, 2, 3]) # 성공
iter(123) # TypeError: 'int' object is not iterable
➕이터러블과 이터레이터의 차이
이터러블과 이터레이터는 서로 관련이 있지만 다른 개념
- 이터러블 (Iterable)
- __iter__() 메서드를 구현한 객체
- for 문에서 순회할 수 있는 객체
- 이터레이터 (Iterator)
- __next__() 메서드를 구현한 객체
- 값을 순차적으로 반환하다가 더 이상 반환할 값이 없으면 StopIteration 예외를 발생
- iter() 함수를 호출하면 이터러블을 이터레이터로 변환할 수 있음
my_list = [1, 2, 3] # 리스트는 이터러블
iterator = iter(my_list) # 이터레이터 생성
# 이터레이터를 수동으로 순회
print(next(iterator)) # 1
print(next(iterator)) # 2
print(next(iterator)) # 3
# 더 이상 반환할 값이 없으면 StopIteration 예외 발생
print(next(iterator)) # StopIteration
➕제너레이터 (Generator): 특별한 이터러블
- 제너레이터는 이터러블의 한 종류로 함수에서 yield 키워드를 사용하여 값을 순차적으로 반환함
- 제너레이터는 메모리를 절약하며 대량의 데이터를 처리할 때 유용함
def my_generator():
yield 1
yield 2
yield 3
# 제너레이터는 이터러블
gen = my_generator()
for value in gen:
print(value)
➕이터러블과 반복문
1. for 문에서의 활용
for 문은 이터러블의 값을 순차적으로 처리하는 데 가장 자주 사용됨
for char in "hello":
print(char)
2. while 문과 이터레이터
while 문을 사용하여 이터레이터 객체를 순회할 수도 있음
이 경우, StopIteration 예외를 처리해야 함
my_list = [1, 2, 3]
iterator = iter(my_list)
while True:
try:
item = next(iterator)
print(item)
except StopIteration:
break
⬇️시퀀스 타입의 이터러블
[Python] 문자열 다루기
🔷 문자열 인덱싱 - 원하는 글자만 뽑아내기문자열은 인덱스(위치 번호)로 글자에 접근할 수 있습니다.중괄호를 사용하고 인덱스는 0부터 시작합니다.text = 'apple'print(text[0]) # a 출력print(text[-2]) #
yiheeju.tistory.com
[Python] 자료형과 컬렉션 쉽게 마스터하기(리스트) 🌟
Python에서 자료형과 컬렉션은 데이터를 효율적으로 저장하고 조작하는 데 필수적인 요소입니다. 이번 글에서는 자료형과 컬렉션(리스트, 딕셔너리 등)에 대해 깊이 있게 알아보아요!📚 자료형
yiheeju.tistory.com
[Python] 자료형과 컬렉션 쉽게 마스터하기(튜플과 시퀀스 자료형) 🌟
Python에서 자료형과 컬렉션은 데이터를 효율적으로 저장하고 조작하는 데 필수적인 요소입니다. 지난 글에서는 리스트와 딕셔너리에 대해 다루었습니다. 이번에는 튜플(Tuple)과 시퀀스 자료형(Se
yiheeju.tistory.com
⬇️컬렉션 타입의 이터러블
[Python] 자료형과 컬렉션 쉽게 마스터하기(딕셔너리) 🌟
Python에서 자료형과 컬렉션은 데이터를 효율적으로 저장하고 조작하는 데 필수적인 요소입니다. 지난 글에서는 리스트에 대해 다루었습니다. 이번에는 딕셔너리(Dictionary)에 대해 알아보겠습니
yiheeju.tistory.com
⬇️반복문
[Python] 반복문 easy하게 마스터하기(while, for)🪄
안녕하세요:) Python에서 반복문은 프로그램이 특정 작업을 여러 번 수행하도록 하는 중요한 기능입니다. 이번 글에서는 Python의 반복문에 대해 마스터하는 시간을 가져보아용~🪄 🔍 반복문의
yiheeju.tistory.com
'📚 [Archive] CS & AI 스터디 > [STUDY] Python 기초 🐍' 카테고리의 다른 글
| [Python] 람다 함수 다람쥐🐿️ (1) | 2024.12.24 |
|---|---|
| [Python] 인자와 알규먼트의 차이점 이해하기 🐍 (3) | 2024.12.24 |
| [Python] 글로벌 변수와 로컬 변수 이해하기 😉 (2) | 2024.12.24 |
| [Python] 자료형과 컬렉션 쉽게 마스터하기(튜플과 시퀀스 자료형) 🌟 (1) | 2024.12.23 |
| [Python] 자료형과 컬렉션 쉽게 마스터하기(딕셔너리) 🌟 (0) | 2024.12.23 |