반응형
질문
Python에서 문자열을 반복하는 방법은 무엇인가요 (각 문자를 한 번에 한 번씩 루프를 통해 가져오는 방법)?
답변
요한네스가 가리킨 것처럼,
for c in "string":
#do something with c
for loop
구조를 사용하여 Python에서 거의 모든 것을 반복할 수 있습니다.
예를 들어, open("file.txt")
은 파일 객체를 반환하며 (파일을 열기도 함), 해당 파일의 각 줄을 반복합니다.
with open(filename) as f:
for line in f:
# do something with line
만약 그것이 마법처럼 보인다면, 그렇게 맞는데, 그 뒤에 있는 아이디어는 정말로 간단합니다.
for
루프가 작동하도록 어떤 종류의 객체에도 적용할 수 있는 간단한 반복자 프로토콜이 있습니다.
next()
메서드를 정의하는 반복자를 구현하고, 클래스에 __iter__
메서드를 구현하여 반복 가능하게 만들면 됩니다. (__iter__
는 물론 next()
를 정의하는 객체, 즉 반복자 객체를 반환해야 합니다.)
반응형
댓글