본문 바로가기

main/Python

파이썬 딕셔너리 key pop하기 del 삭제하기, for문 도는 중 삭제 불가능 에러

딕셔너리 자료형에서 key를 뽑아내고 싶을 때

dict = {}

dict.pop(key, None)

del dict[key]

dict.pop() 을 사용해서 key를 빼낼 수 있다. 2번째 인자에 None을 넣어주면 key가 혹시 존재하지 않아도 error가 발생하지 않는다.

하지만 del을 사용할 경우 dict에 key가 없는 에러가 발생한다면 에러를 뱉고 프로그램이 멈추게 된다.

 

 

 

딕셔너리를 for문으로 돌면서 그 중 특정 key를 삭제하려고 하게 되면

dictionary changed size during iteration

이라는 에러를 보게 된다. 작업 중에 dict가 수정되었다..고 멈추게 된다.

 

filter_dict = {}
  for k, v in meaningful_dict.items():
    if v > 4:
      filter_dict[k] = v

나 같은 경우 

dictionary에서 어떤 키들을 빼고 싶을 때

뺄 애들이 아닌 남아야 되는 애들을 선별하여

새로운 filter_dict를 생성하여 그곳에 append 했다.