본문 바로가기
python/uncategorized

dictionary changed size during iteration 해결 방법

by Falto 2021. 4. 18.
my_dict = {
    'a':1,
    'b':2}

for key, value in my_dict.items():
    my_dict[key+'2'] = value + 1

print(my_dict)

# 결과
# Traceback (most recent call last):
#  File "0.py", line 5, in <module>
#    for key, value in my_dict.items():
# RuntimeError: dictionary changed size during iteration
my_dict = {
    'a':1,
    'b':2}

for key, value in list(my_dict.items()):
    my_dict[key+'2'] = value + 1

print(my_dict)

# 결과
# {'a': 1, 'b': 2, 'a2': 2, 'b2': 3}

my_dict.items()를 list형으로 바꿔주기만 하면 된다. 왜 되는지는 나도 잘 모르겠다...

뭐 list로 바꿔서 나쁠 건 없으니 list로 바꾸는 습관을 들여야 하나?

댓글