2014-03-06 3 views
-1

어떻게해야합니까? 다음과 같이 할 수 있지만 old_key와 같은 위치에 new_key가 나타 납니 까?파이썬 사전에있는 키의 값을 대체 하시겠습니까?

{ 'ONE: 'one', 2:'two', 3:'three' } 

예 : 그래서 용액 같을 것이다

dict[new_key] = dict[old_key] 
    del dict[old_key] 

또는 1 단계 : 딕셔너리는 [old_key] 정의되지 않은 경우 KeyError를 인상한다

dict[new_key] = dict.pop(old_key) 

한다. 이 명령은 dict [old_key]를 삭제합니다.

>>> dict = { 1: 'one', 2:'two', 3:'three' } 
>>> dict['ONE'] = dict.pop(1) 
>>> dict 
{2: 'two', 3: 'three', 'ONE': 'one'} 
>>> dict['ONE'] = dict.pop(1) 
Traceback (most recent call last): 
    File "<input>", line 1, in <module> 
KeyError: 1 
+0

는 파이썬 DICS는 쌍'의 정렬되지 않은 그룹 ' –

+0

이 아마도 당신이 원하는 것을 기억 명명 튜플이 아니라 사전. 또는 반복 할 때 키를 기준으로 사전을 정렬 할 수 있습니다. * 정말로 *하려고합니까? – Edward

+0

컬렉션에는 "OrderedDict"가 있으므로 원하는 경우 ---- 그렇지 않으면 새 키를 추가하는 것만으로도 순서대로 변경 될 수 있습니다. – vish

답변

1

사전은 순서가 지정되지 않습니다. 키의 순서에 의존하지 마십시오. 따라서 "주문 보존"키를 바꾸는 것이 이치에 맞지 않습니다.

이 작업은 OrderedDict으로 수행 할 수 있지만 OrderedDict의 중간에 삽입 할 수 없기 때문에 모든 키를 새로운 주문 사전에 삽입해야합니다.

0

난 당신이 설명한 방법을 사용하여 키를 교체하지만, 파이썬 dicts는 의미 정렬되지 않은 것을 염두에 두어야합니다 :

my_dict[new_key] = my_dict.pop(old_key) 
관련 문제