정처기 감자정처기 감자
Python자료구조

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

이터러블 (iterable)

코딩Python
읽는데 5분 소요
처음 쓰인 날: 2026-09-29
마지막 수정일: 2026-09-29
조회수: —
선수학습(2개)
  • 반복문 (for, while) - 루프의 기초
  • Python 자료형(int, float, str, tuple)

요약

for문에 넣을 수 있는 대상인 이터러블(iterable)을 정리합니다. 리스트·문자열·range·딕셔너리·제너레이터·map 객체가 무엇을 꺼내는지, sum·sorted·join·map·enumerate처럼 이터러블을 받는 내장 함수까지 한 번에 봅니다.

이터러블 핵심 정리

대상for x in 대상으로 꺼내지는 값예시
리스트·튜플요소를 앞에서부터 하나씩[10, 20] → 10, 20
문자열문자를 한 글자씩"ab" → 'a', 'b'
range정수를 차례대로range(3) → 0, 1, 2
딕셔너리키만 (값이 아님){"a": 1} → 'a'
keys / values / items키 / 값 / (키, 값) 튜플d.items() → ('a', 1)
집합요소 (순서는 보장되지 않음){1, 2} → 1, 2
제너레이터·map 객체꺼낼 때마다 계산한 값 (한 번만)map(str, [1]) → '1'
이터러블이 아닌 것정수·실수·bool·Nonefor i in 5 → TypeError

이터러블이란?

이터러블(iterable)은 여러 값을 차례대로 하나씩 꺼낼 수 있는 대상을 통틀어 이르는 말입니다. 영어 iterate(반복하다)에서 온 말로, "반복해서 꺼낼 수 있는 것"이라는 뜻입니다.

음악 플레이리스트를 떠올리면 쉽습니다. 플레이리스트에 곡이 여러 개 들어 있으면 1번 곡부터 한 곡씩 차례대로 재생되고, 다 듣고 다시 틀면 처음부터 똑같이 나옵니다. 반면 노래 한 곡은 그 자체가 곡이라 "다음 곡"이 없습니다.

왼쪽에는 헤드폰을 쓴 감자 옆 휴대폰 플레이리스트에서 1번 곡, 2번 곡, 3번 곡이 차례대로 재생되고 다시 틀면 처음부터 나오는 모습, 오른쪽에는 노래 한 곡(5)만 들고 다음 곡 버튼을 눌러도 아무것도 나오지 않아 당황한 감자를 비교한 그림
이터러블은 곡이 여러 개 든 플레이리스트처럼 한 곡씩 차례대로 꺼낼 수 있고, 노래 한 곡 같은 값 하나는 다음이 없습니다

가장 쉬운 판별법은 for문입니다. for 변수 in 대상:의 in 뒤에 올 수 있으면 이터러블입니다.

python
코드 하이라이팅 중…
출력
코드 하이라이팅 중…
왼쪽에는 이터러블인 리스트 [10, 20], 문자열 'abc', range(3), 딕셔너리 {'a': 1, 'b': 2}가 각각 10·20, 'a'·'b'·'c', 0·1·2, 키 'a'·'b'를 하나씩 for x in으로 내보내는 모습, 오른쪽에는 이터러블이 아닌 5, 3.14, True, None이 값 하나뿐이라 꺼낼 요소가 없어 for i in 5가 TypeError를 내는 모습을 비교한 다이어그램
이터러블은 for문이 값을 하나씩 꺼내 갈 수 있고, 값 하나뿐인 정수·실수·bool·None은 꺼낼 요소가 없어 TypeError가 납니다

문자열 "abc"를 in 뒤에 넣었더니 'a', 'b', 'c'가 차례대로 ch에 들어왔습니다. 그러니 문자열은 이터러블입니다.

이터러블이 아닌 것

정수·실수·bool·None은 값 하나 그 자체일 뿐 안에 담긴 요소가 없으므로 이터러블이 아닙니다. in 뒤에 넣으면 오류가 납니다.

python
코드 하이라이팅 중…
출력
코드 하이라이팅 중…

오류 메시지 마지막 줄의 not iterable이 바로 "이터러블이 아니다"라는 뜻입니다. 0부터 4까지 반복하려면 정수 5가 아니라 range(5)를 넣어야 합니다.


이터러블을 받는 내장 함수

Python의 여러 내장 함수는 인자로 리스트만이 아니라 이터러블이면 무엇이든 받습니다. 함수 안에서 for문처럼 값을 하나씩 꺼내 쓰기 때문입니다.

함수하는 일예시 → 결과
sum(이터러블)모든 값을 더함sum(range(4)) → 6
sorted(이터러블)정렬한 새 리스트 반환sorted("cab") → ['a', 'b', 'c']
'구분자'.join(이터러블)문자열 요소를 구분자로 이어 붙임"-".join("abc") → 'a-b-c'
map(함수, 이터러블)각 값에 함수를 적용한 map 객체 반환list(map(str, [1, 2])) → ['1', '2']
enumerate(이터러블)(인덱스, 값) 쌍을 하나씩 내놓음list(enumerate("ab")) → [(0, 'a'), (1, 'b')]
all(이터러블) / any(이터러블)모두 참인지 / 하나라도 참인지any(x > 2 for x in [1, 3]) → True
list() / tuple() / set()꺼낸 값으로 리스트·튜플·집합을 만듦list(range(3)) → [0, 1, 2], tuple("ab") → ('a', 'b')

같은 함수라도 어떤 이터러블을 넣느냐에 따라 꺼내지는 값이 달라집니다. 맨 위 핵심 정리 표의 "꺼내지는 값" 규칙을 그대로 적용하면 됩니다.

python
코드 하이라이팅 중…
출력
코드 하이라이팅 중…

인자 자리에 제너레이터 표현식을 바로 넣는 sum(len(x) for x in m), ''.join(c for c in y if ...) 같은 형태도 쓸 수 있습니다. 제너레이터도 이터러블이기 때문에 가능한 문법으로, sum, any, all과 함께 쓰기에서 자세히 다룹니다.

join()에 넣는 이터러블은 요소가 모두 문자열이어야 합니다
''.join([1, 2])처럼 숫자가 섞여 있으면 TypeError가 납니다. ''.join(map(str, [1, 2]))처럼 먼저 문자열로 바꾼 뒤 넣으면 '12'가 됩니다.

정보처리기사 실기 대비 문제

문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)
후수학습(3개)
  • Python 기본 제공 함수
  • Python 제너레이터 표현식
  • Python 컴프리헨션 통합 정리
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999