소스 코드(python 3.5.0/OSX)
l = ['cat', 'dog', 'bird', 'pig', 'spam']
for x, animal in enumerate(l):
print(x, animal)
else:
print("Done")
실행 결과
0 cat
1 dog
2 bird
3 pig
4 spam
Done
위 샘플로 알수 있는 것은?
1.python 에서 별도 추가하지 않고, 인덱스 쓸수 있는 방법이 있었다. 헐, enumerate()를 이렇게 쓰는 구만..
2.for 문이 종료되는 시점에 별도 처리 가능한게 있다. 바로 'else' 'if'도 아닌데, else라니, 'while'문에도 있다는 걸 처음 알게 됨...ㅎㅎ 단, 중간에 'break' 처리가 들어가면 else이하가 실행되지 않으니 주의.
아래는 2개의 테스트 결과를 보면, 앞쪽은 인덱스, 뒤쪽은 range() 결과 인데. 참고.
print(k, n)
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
2번 테스트
>>> for k, n in enumerate(range(3, 10)):
print(k, n)
0 3
1 4
2 5
3 6
4 7
5 8
6 9
l = ['cat', 'dog', 'bird', 'pig', 'spam']
for x, animal in enumerate(l):
print(x, animal)
else:
print("Done")
실행 결과
0 cat
1 dog
2 bird
3 pig
4 spam
Done
위 샘플로 알수 있는 것은?
1.python 에서 별도 추가하지 않고, 인덱스 쓸수 있는 방법이 있었다. 헐, enumerate()를 이렇게 쓰는 구만..
2.for 문이 종료되는 시점에 별도 처리 가능한게 있다. 바로 'else' 'if'도 아닌데, else라니, 'while'문에도 있다는 걸 처음 알게 됨...ㅎㅎ 단, 중간에 'break' 처리가 들어가면 else이하가 실행되지 않으니 주의.
아래는 2개의 테스트 결과를 보면, 앞쪽은 인덱스, 뒤쪽은 range() 결과 인데. 참고.
1번 테스트
>>> for k, n in enumerate(range(10)):print(k, n)
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
2번 테스트
>>> for k, n in enumerate(range(3, 10)):
print(k, n)
0 3
1 4
2 5
3 6
4 7
5 8
6 9
댓글
댓글 쓰기