Python - for in 반복문 (enumerate, range)

JS · 26 Sep 2020

Python은 for in 키워드를 사용하여 반복문을 구현할 수 있습니다.

for in

예를 들어, 다음과 같이 for in을 사용하여 리스트의 모든 내용을 출력할 수 있습니다.

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

for item in item_list:
    print(item)

Output:

1
2
3
4
5

List뿐만 아니라 다음과 같이 다양한 타입에 사용할 수 있습니다.

  • List
  • Tuple
  • String
  • Dict

String

for ch in 'abcde':
    print(ch)

Output:

a
b
c
d
e

Tuple

item_tuple = (1, 2, 3, 4, 5)
for item in item_tuple:
    print(item)

Output:

1
2
3
4
5

Dict

Dictionary 같은 경우는 다음과 같이 key를 순회하고 item_dict[key]와 같은 방법으로 value에 접근할 수 있습니다.

item_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}
for key in item_dict:
    print('k: {}, v: {}'.format(key, item_dict[key]))

Output:

k: 1, v: a
k: 2, v: b
k: 3, v: c
k: 4, v: d
k: 5, v: e

또는 다음과 같이 keys() 함수를 사용하여 명시적으로 key만 순회할 수 있습니다.

for key in item_dict.keys():
    print('k: {}, v: {}'.format(key, item_dict[key]))

만약 key와 value를 함께 순회하고 싶다면 다음과 같이 items() 함수를 호출하여 iterable한 값이 리턴되도록 만들면 됩니다.

for key, value in item_dict.items():
    print('k: {}, v: {}'.format(key, value))

Range

range()는 원하는 횟수만큼 for 루프를 순회할 수 있도록 도와줍니다.

예를 들어, range(5)는 0에서 4까지의 값을 담고 있는 Collection을 리턴합니다.

다음과 같이 range를 사용하면 5번 순회하는 for-loop를 쉽게 만들 수 있습니다.

for item in range(5):
    print(item)

range에 대해서 기억해야할 내용은 다음과 같습니다.

  • range는 range(start_value, end_value, step)으로 인자를 전달할 수 있으며, start_value와 step은 생략할 수 있습니다.
  • range는 start_value를 포함하고, end_value를 포함하지 않는 수열을 리턴합니다.
  • 시작숫자를 생략하면 0, step을 생략하면 1로 설정됩니다.

range() 예제

다음 코드는 2에서 4까지의 숫자를 출력합니다.

for item in range(2, 5):
    print(item)

Output:

2
3
4

다음은 5부터 19 사이의 숫자 중에, 5부터 5의 간격 마다 숫자를 출력합니다.

for item in range(5, 20, 5):
    print(item)

Output:

5
10
15

Enumerate

enumerate()는 인자로 전달되는 Collection을 index와 함께 Tuple 형태로 리턴합니다.

다음과 같은 코드를 실행하면 index와 리스트의 value가 함께 출력이 됩니다.

item_list = [1, 2, 3, 4, 5]
for item in enumerate(item_list):
    print(item)

Output:

(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)

다음과 같이 index와 value를 함께 순회할 수도 있습니다.

for (idx, value) in enumerate(item_list):
    print('index: {}, value: {}'.format(idx, value))

Output:

index: 0, value: 1
index: 1, value: 2
index: 2, value: 3
index: 3, value: 4
index: 4, value: 5
댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha