[python] for문과 range, 그리고 iterator
python을 처음 접할 때 for 구문이 형태가 조금 달라 당황했습니다. 보편적인 사용형태는 아래와 같습니다.
for x in range(3):
print(x)
위 코드는 0, 1, 2를 순서대로 출력합니다. 특이한 사항은 range(3) 함수는 iterator 타입을 반환하고 for문이 매 루프마다 iterator를 조회하여 x값을 얻는다는 것입니다. range()함수의 매개변수로 하나의 자연수 N을 전달하면 0, 1, 2, ... , N-1 까지의 값을 순차적으로 조회되는 iterator가 반환된다는 것입니다. 아래와 같이 range(start, end, step) 함수로 3개의 전달인자를 전달하면, start ~ (end-1) 사이의 숫자를 step 간격으로 조회되는 iterator를 for 루프에 사용할 수 있습니다.
for x in range(1, 10, 2):
print(x)
위 코드는 1, 3, 5, 7, 9를 순서대로 출력합니다.
range() 함수 대신 다른 iterator 타입의 자료를 이용할 수도 있습니다. 아래는 사용 가능한 목록입니다.
range() 함수 대신, 리스트, 튜플, 디셕너리, 문자열, 집합 등의 타입의 자료형에도 대응이 가능한 것을 확인할 수 있습니다.
끝.
댓글
댓글 쓰기