본문 바로가기

딕셔너리에서 삭제하기

오토씨 2022. 3. 8.

딕셔너리에서 특정 값 삭제를 반복문에서 실행하면 에러발생함.

keys = ['alpha', 'bravo', 'charlie', 'delta', 'echo', 'foxtrot', 'golf']
values = [30, 40, 50, 60, 70, 80, 90]
x = dict(zip(keys, values))
for k, v in x.items():
    if v == 30:
        del x[k]


Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    for k, v in x.items():
RuntimeError: dictionary changed size during iteration

이런경우 딕셔너리 컴프리헨션으로 해결 가능

keys = ['alpha', 'bravo', 'charlie', 'delta', 'echo', 'foxtrot', 'golf']
values = [30, 40, 50, 60, 70, 80, 90]
x = dict(zip(keys, values))

x = { k: v for k, v in x.items() if v != 30 }

print(x)

댓글