본문 바로가기
Programming Language/Python

[Python] for in 반복문 (for in, range, enumerate)

by veggie-garden 2021. 9. 19.

1. for in 반복문

for item in iterable:
	반복할 명령어들

 

iterable [각주:1]

member를 하나씩 반환할 수 있는 object(객체), 즉 값을 하나씩 꺼낼 수 있는 객체

eg) list, dictionary, set, string, tuple, bytes 등

 

example = [1, 2, 3, 4, 5]

for num in example:
	if num % 2 == 0:
    		print(num)

 

위의 코드는 example 리스트에서 짝수만 출력하는 코드이다.

example의 값이 하나씩 num이라는 변수에 저장되어 만약 num이 2로 나누어 떨어진다면 출력되는 것이다. 

2. range 

for i in range(5):
	반복할 명령

 

range(시작 숫자, 끝 숫자, 증가량) 형태로 사용된다.

시작 숫자와 증가량은 조건을 설정해줄 필요가 없으면 이상 생략해도 괜찮다. 

위의 코드는 0부터 시작해 4에서 끝남으로 총 5번 반복되고 종료된다. 

 

nums = list(range(0, 5))

# 결과
[0, 1, 2, 3, 4]

 

range를 활용하여 list나 tuple 등을 생성할 수 있다. 

 

nums = [i for i in range(5)]

# 결과
nums = [0, 1, 2, 3, 4]

 

이런 식으로도 배열 생성이 가능하다. 이것을 리스트 내포라고 한다. 

3. enumerate

for item in enumerate(iterable):
	반복할 명령

 

반복문을 사용하다 보면 몇 번째 반복문인지 확인이 필요한 경우가 있다. 이럴 때 enumerate[각주:2]를 사용하는 것이다. 

 

enumerate는 index와 iterable의 원소를 tuple 형태로 반환한다. 

 

nums = [1, 2, 3, 4]

for i, v in enumerate(nums):
	print(f"index: {i}, value: {v}")
    
# 결과
index: 0, value: 1
index: 1, value: 2
index: 2, value: 3
index: 3, value: 4

 

위의 방법처럼 활용이 가능하다. print(f"") 이 방식을 f-string formatting이라고 하는데 python string formatting 중 한 방식이다. % formatting과 format()과의 차이가 궁금하다면 이 링크를 참조하길 바란다. 사용법이 궁금하다면 이 링크.

 

nums = [1, 2, 3, 4]
queue = [(i, v) for i, v in enumerate(nums)]

# 결과
queue = [(0, 1), (1, 2), (2, 3), (3, 4)]

 

위와 같이 배열 생성도 가능하다.

 

참고: https://wikidocs.net/16045 

 

19. for in 반복문, Range, enumerate

## 1. for in 반복문 - 여타 다른 언어에서는 일반적인 for문, foreach문, for of문등 여러가지 방식을 한꺼번에 지원하는 경우가 많습니다. - Pyt ...

wikidocs.net


 

댓글