<aside>
💡 프로그래밍에서 이터러블*(iterable)*이란 리스트, 튜플, 셋 딕셔너리, 문자열처럼 포함된 요소들을 하나하나 돌아가면서 처리하거나 반환할 수 있는 객체를 말합니다.
파이썬에서 for … in 루프를 사용할 수 있는 객체들은 이터러블이라고 말할 수 있습니다.
</aside>
객체가 이터러블인지 확인하기
# 💡 이터레이터(다음 강에 배움)를 반환
str_is_iterable = iter("Hello")
list_is_iterable = iter([1, 2, 3])
tuple_is_iterable = iter((True, False))
set_is_iterable = iter({"A", "B", "C"})
dic_is_iterable = iter({"pi": 3.14})
class MyClass:
pass
# ⚠️ 아래는 모두 오류 발생
# num_is_iterable = iter(123)
# bool_is_iterable = iter(True)
# mc_is_iterable = iter(MyClass())
pass
iter() : __iter__ 인자로 들어간 객체의 매직 메소드 호출range() 함수의 반환값도 이터러블
for ... in 문에 range 사용 가능range_returns_iterable = iter(range(5))
<aside> 💡 리스트, 사전, 집합과 같은 컬렉션 데이터 타입을 간결하고 효율적으로 생성할 수 있는 방법입니다.
</aside>
# 기본
basic_list = [x for x in range(10)]
pass
basic_list_2 = [x + 2 for x in range(10)]
basic_list_2 = [x * 3 for x in range(10)]
# 조건 : if문 사용
even_numbers = [x for x in range(10) if x % 2 == 0]
# 다중 조건
selected_numbers = [x for x in range(20) if x % 2 == 0 if x % 3 != 0]
# 딕셔너리로 변환
words = ["apple", "banana", "cherry"]
word_lengths = {word: len(word) for word in words}
odd_n_even = {num: ("홀수" if num % 2 else "짝수") for num in range(5)}