파이썬의 for문은 시퀀스 자료형의 항목들을 순서대로 이터레이션 한다. (순서별로 요소를 하나씩 꺼낸다.)
iterable ?
'반복 가능한'이란 사전적 의미를 갖으며, 파이썬에서는 '여러 개의 요소들로 구성되어 있으면서 요소를 한 번에 하나씩 돌려줄 수 있는 객체'를 의미한다.
객체 ?
메모리에 할당되어 존재하고 있는 데이터
for 요소를 담을 변수 in 반복 가능한 객체 :
반복할 코드
range() 함수를 이용하거나 시퀀스 객체(list, tuple, set, dict)를 이용하여 for문의 반복 범위를 지정할 수 있다.
range(시작, 끝-1, 증감크기)
for x in range() :
반복할 코드
list
이용 시..
각 인자가 차례대로 x에 대입되어 len(list)
횟수만큼 실행된다.
for x in [list] :
반복할 코드
# x에 [list] 각 인자 대입하여 len([list]) 만큼 실행됨
# [1, 2, 3] 이라면 x는 차례대로 1, 2, 3
2차원 list
이용 시..
각각 인자가 x, y에 대입되어 len([list]) 횟수만큼 실행된다.
for x, y in [[4,3]] :
# x = 4, y = 3이 된다.
str
이용 시..
문자열 한 글자씩 x에 대입되어 len(str)
횟수만큼 실행된다.
💡 출력 시에 Enter를 없애고 싶다면, end=" "
를 추가하면 된다.
for x in "일이삼" :
print(x, end=" ")
-----------------------
일 이 삼
enumerate
- 리스트가 있는 경우 순서와 리스트의 값을 전달하는 기능names = ['철수', '영희', '영수']
for i, name in enumerate(names):
print('{}번: {}'.format(i + 1, name))
1번 : 철수
2번 : 영희
3번 : 영수
이차원_리스트 = [[0, 1], [3, 4]]
for i, (x, y) in enumerate(이차원_리스트) :
print(i, x, y)
# 각각 i, x, y
# 0 0 1
# 1 3 4
for i, xy in enumerate(이차원_리스트) :
print(i, xy)
# 인덱스 i, 원소 [x, y] 별로 구분
# 0 [0, 1]
# 1 [3, 4]
for 반복문 :
if 조건문
내용1
break
else :
내용2
# 조건문에 해당되면 내용1 출력, 내용2 출력 x
for x in [1, 2, 3, 4]:
if x % 3:
print(x) # x가 3의 배수가 아니면 출력
else:
break # x가 3의 배수이면 반복문에서 빠져나감
else:
print("리스트의 원소를 모두 출력했어요")
1
2
for 요소를 담을 변수 in 반복 가능한 객체 :
for 반복 변수 in 반복 범위 :
반복할 코드
list_1 = ['a', 'b', 'c']
list_2 = [10, 20, 30]
for x in range(len(list_1)) :
print(list_1[x], list_2[x])
a 10
b 20
c 30
이중 for문을 작성하지 않고도 한 번에 여러 개의 for문을 작성한 효과
list = [x[y[0]:y[-1]] for x,y in zip(a, b)]
# x = a, y = b
인자를 여러 개 받을 수도 있다.
더 짧은 범위를 반복한다.
for a, b in zip(mystr, mystr[1:])