파이썬에서 가장 기초적인 반복문인 for문의 정리와 함께 유용한 팁 몇가지를 소개해 드리겠습니다.
for문은 아주 유용한 반복문입니다. 처리속도가 느릴 수 있지만 표현하기 참 편리한 방법이죠.
먼저, 반복가능한 여러 타입들을 보겠습니다. 제가 적은 것 말고도 아주 많은 예시들이 더 있을테지만, 제가 생각나는데까지 적어볼게요.
1. for문의 표현식과 반복가능한 타입
import numpy as np
array_ = np.array([1, 2, 3, 4])
for i in array_:
print(i)
1
2
3
4
list_ = [1, 2, 3, 4]
for i in list_:
print(i)
1
2
3
4
tuple_ = (1, 2, 3, 4)
for i in tuple_:
print(i)
1
2
3
4
dict_ = {"x": 1, "y": 2, "z": 3, "v": 4}
for i in dict_:
print(i)
x
y
z
v
str_ = "abcd"
for i in str_:
print(i)
a
b
c
d
range_ = range(0, 4)
for i in range_:
print(i)
0
1
2
3
for문의 표현식은 참 직관적입니다. 위의 예시 중 range를 설명하면,
range(0, 4)는 range(start, stop, step)이며 start와 step은 생략가능합니다. stop의 숫자 바로 전까지 정의되며,
range(0, 4)=range(4)=range(0, 4, 1) 입니다. 따라서, start의 디폴트값은 0, step의 디폴트값은 1입니다.
range_ = range(0, 4)이기 때문에 0, 1, 2 ,3 순서대로 반복하여 i 변수에 주입합니다.
반복이 진행되면 순서대로 i 변수에 0, 1, 2 ,3이 부여되어 프린트됩니다.
다음으로 for문 이용할 때의 팁을 추가하자면
2. for문 이용시 꿀팁
2-1. enumerate
for index, i in enumerate(list_):
print(index, i, list_[index])
0 1 1
1 2 2
2 3 3
3 4 4
enumerate는 반복할 타입의 인덱스를 함께 부여할 수 있습니다.
list_ = [1, 2, 3, 4] 입니다.
index는 list_에서의 인덱스, i는 list_의 값, list_[index]는 list_의 인덱스 위치에 해당하는 값입니다.
2-2. zip
for array__, dict__ in zip(array_, dict_):
print(array__, dict__)
1 x
2 y
3 z
4 v
for array__, dict__, str__ in zip(array_, dict_, str_):
print(array__, dict__, str__)
1 x a
2 y b
3 z c
4 v d
zip은 같은 길이의 변수라면 for문에 함께 사용하게 할 수 있는 함수입니다.
array_ = np.array([1, 2, 3, 4]), dict_ = {"x": 1, "y": 2, "z": 3, "v": 4} 입니다.
두 변수의 길이가 같으므로 zip으로 묶을 수 있고, for문을 한번에 돌릴 수 있습니다.