본문 바로가기

프로그래밍

python dictionary의 키만 복사 사용

딕셔너리를 다루는 작업을 하다가 딕셔너리 내 데이터가 변화로 인해
 
에러가 발생하는 경우가 있었다.
 
딕셔너리 전체를 다루지 않고 키만 참조해서 사용하는 반복문에서 이같은 문제가 발생해서 키만 복사하는 방법을 이용하였다.
 
키에 대해서만 정적으로 사용하고자 복사해서 사용하려는게 핵심이라
아래와 같이 진행했다.
 
test_dict = {'a':{}, 'b':{}, 'c': {}}
 
print('test_dict keys() %s' % (test_dict.keys()))
 
temp_keys = set(test_dict.keys())
 
print('temp_keys copy from test_dict %s' % (temp_keys))
 
test_dict.update({'d': {}})
 
print('test_dict keys() %s' % (test_dict.keys()))
print('temp_keys copy from test_dict %s' % (temp_keys))
for key in temp_keys:
print(key)
 
 
사용 방식에 따라 set 개체나 list 개체를 이용하여, 매개변수에 키를 복사하고 하는 딕셔너리의 키를 넣고(target_dict.key) 반환되는 개체를 이용하면 된다. 
위는 set개체 생성자로 dictionary의 keys()를 호출한 결과이다.
 
 
이번엔 list로 한 결과이다.