[해결] 파이썬, 리스트를 이용한 while 문
글쓴이: GunSmoke / 작성시간: 금, 2008/06/20 - 3:23오후
역시 점프 투 파이썬입니다.
다른게 아니라 다음 예문에서 while에 대한 조건문으로 온 리스트, data가 어떻게 처리되는지 궁금합니다.
import random def random_pop(data): number = random.randint(0, len(data)-1) return data.pop(number) if __name__ == '__main__': data = [1,2,3,4,5] while data: print random_pop(data)
data가 리스트이기 때문에 data전체가 random_pop()로 넘어가나요,
아니면 data의 각 요소 1, 2, 3, 4, 5가 차례로 random_pop()으로 넘어가는 것인가요?
요소가 하나씩 넘어간다면 random_pop()에서 항상 random.randint의 범위는 (0, 0)이 되어버리기 때문에 data.pop(number)의 결과는 항상 동일할 것이고...
리스트 전체가 넘어간다면 순회가 발생하지 않게 될 것 같은데...
무엇이 맞는지 알고 싶습니다.
Forums:
전체가 넘어갑니다
data 전체가 넘어가고, while data: 반복문은 data가 빈 리스트([])가 될 때까지 반복합니다.
그렇군요. 리스트를
그렇군요.
리스트를 pop하면서 리스트 내 요소가 하나씩 줄어들게 되는 것이로군요!!
매번 감사합니다.
大逆戰
大逆戰
댓글 달기