2016-06-09 3 views
0

내가 단지 자체 사전을를 사용하여에서 my_dict, 을 구축했습니다 initial_list을 확인할 수있는 방법이 있습니다입니다 : 내가 초기 목록을 얻을 수있는 옵션 중 하나 (그러나 순서가 발견으로dict가 작성된 초기 목록을 얻는 방법은 무엇입니까?

initial_list = [('key1', 'value1'), ('key2', 'value2'), ('key3', 'value3'), 
       (1,2), ('a','z'), ('aa','z')] 
my_dict = dict(initial_list) 

그것이의 항목)에서 원래 상이 zip 또는 dict.items 사용하는 것이다 :

initial_list_from = zip(my_dict.keys(),my_dict.values()) 
print initial_list_from == initial_list #False 

initial_list_from = my_dict.items() 
print initial_list_from == initial_list #False 

같은 접근 방식의 문제점은 my_dict == initial_listfalse 평가이다 그들은 때로 믿을을 같은 ...

+0

관련 [파이썬 사전, 선언 같은 순서로 키/값을 유지 (http://stackoverflow.com/q/1867861) –

+0

@BhargavRao definetely를 살펴, 덕분에 ('my_dict.items을 시도 –

답변

2

dict 클래스 키의 순서를 저장하지 않기 때문에 불가능합니다.

유일한 방법은 키가 처음 삽입 된 순서를 기억하는 사전 인 OrderedDict을 사용하는 것입니다.

from collections import OrderedDict 

initial_list = [('key1', 'value1'), ('key2', 'value2'), ('key3', 'value3'), 
        (1,2), ('a','z'), ('aa','z')] 
my_dict = OrderedDict(initial_list) 

initial_list_from = my_dict.items() 
print initial_list_from == initial_list # True 
+0

)'대신'zip (my_dict.keys(), my_dict.values ​​())'! – schwobaseggl

+0

@schwobaseggl 감사합니다. 청소기입니다. –

관련 문제