반복문 for문에 대해서 알아봅니다. 파이썬의 for문은 단순한 반복문보다는, 객체 내 원소를 하나하나 순회하는 구문입니다. 이러한 특성을 가진 for문의 예시까지 살펴보겠습니다.
[ Contents ]
1. 반복문 For
for 변수 in 순회 가능한 객체:
반복할 행위
for문은 여러 값이 저장된 자료형에서 하나씩 꺼내 변수에 넣고, 반복 수행하는 제어문입니다.
C/C++/Java와 같은 전통적인 언어와 달리, for문은 정수 인덱스로 반복 횟수를 정하지 않습니다. 객체의 요소 개수에 따라, 반복 횟수가 정해집니다. 객체 내 원소를 다 꺼낼 때까지 반복하죠.
for i in range(N): N번 반복문을 수행
그렇기에 반복 횟수만을 지정하려면, range() 함수를 이용해야 합니다.
range(start, end, step): start부터 end까지 step씩 증가하는 수열을 반환
start와 step은 생략가능하며, start의 기본값은 0이고 step의 기본값은 1입니다.
range 함수를 이용하면, 원하는 횟수만큼 반복할 수 있습니다.
2. list, tuple, set, dictionary
순회가능한 객체는 모두 for문에 쓰일 수 있습니다. 파이썬의 4가지 기본 자료형인 list, tuple, set, dictionary 모두 가능합니다. for문에서 직접 객체를 순회할 수 있으므로, 굳이 인덱스로 접근할 필요가 없습니다.
종종 이렇게 인덱스로 접근하시는 분들이 계신데, 이는 파이썬의 철칙에 어긋나는 코드 스타일입니다.
3. Iterable 이란?
그 외에도 map, 문자열 등 여러 데이터들을 갖고 있는 자료형은 모두 for문에 사용될 수 있습니다. 그 이유는 for문이 객체를 iterable하게 만들기 때문입니다.
iterable: '순회 가능한'이라는 뜻으로, 순서대로 내부 요소를 하나씩 꺼낼 수 있는 객체를 뜻함
여기서 중요한 점은 '순서'입니다. set과 dictionary와 같은 자료형은 순서가 없습니다. 따라서 iteration(순회)를 할 수 없습니다. 어떤 순서로 꺼내야 할지 모르니까요. (컬렉션 타입으로, 인덱스 접근이 불가능한 자료형)
그래서 for문 내에서는 __iter__() 메서드로 우선 객체를 iterator로 만들고, __next__() 메서드를 이용해서 순서대로 순회합니다. 그 덕분에 set 자료형도 오름차순으로 순회하고, dictionary 같은 자료형도 생성된 순서대로 순회할 수 있습니다.
'PL (Programming Language) > Python' 카테고리의 다른 글
[Python] 파이썬 for - else, while - else 구문 사용법과 예시 (0) | 2022.04.21 |
---|---|
[Python] 파이썬 딕셔너리 value로 key 찾는 방법 (0) | 2022.04.13 |
[Python] 파이썬 딕셔너리(Dictionary) 연산 및 메서드 (0) | 2022.04.12 |
[Python] 파이썬 집합(set) 연산 및 메서드 (0) | 2022.04.12 |
[Python] 튜플(Tuple)이란? 튜플 연산과 메서드 (0) | 2022.04.12 |
댓글