본문 바로가기
Python

[Python] dictionary changed size during iteration

by inspireman 2021. 10. 20.
728x90

|파이썬 에러코드|


예외가 발생하였습니다. Runtime Error 발생 시 코드 수정 방법

 

에러 메시지 : dictionary changed size during iteration

 

발생 경우 :  loop문 도중 dictionary key 값을 삭제할 때 발생

 

원인 : python에서는 dictionary를 mutable한 변수로 보고 있고 데이터가 변경되면 이를 반영하기 때문이다.

그렇기 때문에 iteration을 수행하는 도중에 key가 삭제되면 사이즈 변경을 인지하여 runtime 에러를 발생시키는 것이다.

[출처] [python3] RuntimeError: dictionary changed size during iteration 해결하는 방법|작성자 예스베이비

 

취미가 다양한 개발자 : 네이버 블로그

컴퓨터, 일상

blog.naver.com

 

해결 방법 : dict.keys() 로 loop문을 진행하지 말고 list에 넣어서 진행

 

예시. 

 

오류 발생 하는 코드

for tk in have_tickers.keys():
    ticker_sell_check(tk)
    time.sleep(1)

 

 

수정한 코드

for tk in list(have_tickers):
    ticker_sell_check(tk)
    time.sleep(1)

 

 

 

728x90
반응형

댓글