답변:
2 단계로 쉽게 수행 할 수 있습니다.
dictionary[new_key] = dictionary[old_key]
del dictionary[old_key]
또는 1 단계에서 :
dictionary[new_key] = dictionary.pop(old_key)
이는 올릴 KeyError
경우 dictionary[old_key]
정의되지 않는다. 이 참고 합니다 삭제합니다 dictionary[old_key]
.
>>> dictionary = { 1: 'one', 2:'two', 3:'three' }
>>> dictionary['ONE'] = dictionary.pop(1)
>>> dictionary
{2: 'two', 3: 'three', 'ONE': 'one'}
>>> dictionary['ONE'] = dictionary.pop(1)
Traceback (most recent call last):
File "<input>", line 1, in <module>
KeyError: 1
dict[new_value] = dict.pop(old_value, some_default_value)
를 피하기 위해 사용할 수 있습니다.
old_key
다릅니다 new_key
.
모든 키를 변경하려면 다음을 수행하십시오.
d = {'x':1, 'y':2, 'z':3}
d1 = {'x':'a', 'y':'b', 'z':'c'}
In [10]: dict((d1[key], value) for (key, value) in d.items())
Out[10]: {'a': 1, 'b': 2, 'c': 3}
단일 키를 변경하려는 경우 위의 제안 중 하나를 수행 할 수 있습니다.
{ d1[key] : value for key, value in d.items() }
파이썬 2.7 이상에서는 사전 이해를 사용할 수 있습니다. 이것은 DictReader를 사용하여 CSV를 읽는 동안 발생한 예제입니다. 사용자는 모든 열 이름에 ':'을 붙였습니다.
ori_dict = {'key1:' : 1, 'key2:' : 2, 'key3:' : 3}
키에서 후행 ':'을 제거하려면 다음을 수행하십시오.
corrected_dict = { k.replace(':', ''): v for k, v in ori_dict.items() }
d = {1:2,3:4}
키를 목록 요소 p = [ 'a', 'b']로 변경한다고 가정합니다. 다음 코드가 수행됩니다.
d=dict(zip(p,list(d.values())))
그리고 우리는 얻는다
{'a': 2, 'b': 4}
모든 키를 한 번에 변경하는 경우 여기서 나는 열쇠를 형태소 분석하고있다.
a = {'making' : 1, 'jumping' : 2, 'climbing' : 1, 'running' : 2}
b = {ps.stem(w) : a[w] for w in a.keys()}
print(b)
>>> {'climb': 1, 'jump': 2, 'make': 1, 'run': 2} #output