암호:
d = {'a': 0, 'b': 1, 'c': 2}
l = d.keys()
print l
이것은 인쇄합니다 ['a', 'c', 'b']
. 방법이 lkeys()
내의 키워드 순서를 결정하는 방법을 잘 모르겠습니다 . 그러나 "적절한"순서로 키워드를 검색 할 수 있기를 바랍니다. 물론 적절한 순서는 목록을 만들 것 입니다.['a', 'b', 'c']
암호:
d = {'a': 0, 'b': 1, 'c': 2}
l = d.keys()
print l
이것은 인쇄합니다 ['a', 'c', 'b']
. 방법이 lkeys()
내의 키워드 순서를 결정하는 방법을 잘 모르겠습니다 . 그러나 "적절한"순서로 키워드를 검색 할 수 있기를 바랍니다. 물론 적절한 순서는 목록을 만들 것 입니다.['a', 'b', 'c']
답변:
OrderedDict (Python 2.7 필요) 이상을 사용할 수 있습니다 .
또한, 주 OrderedDict({'a': 1, 'b':2, 'c':3})
때문에 작동하지 않습니다 dict
당신이 만들 {...}
이미 요소의 순서를 잊어있다. 대신 OrderedDict([('a', 1), ('b', 2), ('c', 3)])
.
문서에서 언급했듯이 Python 2.7보다 낮은 버전의 경우이 레시피를 사용할 수 있습니다 .
Python 3.7.0 에서 dict
객체 의 삽입 순서 보존 특성은 Python 언어 사양의 공식 부분 으로 선언되었습니다 . 따라서 그것에 의존 할 수 있습니다.
Python 3.6부터 Python의 CPython 구현을 위해 사전 은 기본적으로 삽입 순서 를 유지 합니다. 이것은 구현 세부 사항으로 간주됩니다. collections.OrderedDict
다른 Python 구현에서 보장되는 삽입 순서를 원하는 경우 계속 사용해야 합니다.
삽입 된 항목의 순서를 기억 하는 collections.OrderedDict
클래스가 필요할 때 사용하십시오 dict
.
>>> print sorted(d.keys())
['a', 'b', 'c']
전달 된 iterable을 정렬 하는 sorted 함수를 사용하십시오 .
이 .keys()
메서드는 임의의 순서로 키를 반환합니다.
에서 http://docs.python.org/tutorial/datastructures.html :
"사전 객체의 keys () 메서드는 사전에 사용 된 모든 키 목록을 임의의 순서로 반환합니다 (정렬하려면 sorted () 함수를 적용하면됩니다)."
사전이 해시 맵이므로 순서는 중요하지 않습니다. 푸시되는 순서에 따라 다릅니다.
s = 'abbc'
a = 'cbab'
def load_dict(s):
dict_tmp = {}
for ch in s:
if ch in dict_tmp.keys():
dict_tmp[ch]+=1
else:
dict_tmp[ch] = 1
return dict_tmp
dict_a = load_dict(a)
dict_s = load_dict(s)
print('for string %s, the keys are %s'%(s, dict_s.keys()))
print('for string %s, the keys are %s'%(a, dict_a.keys()))
출력 :
문자열 abbc의 경우 키는 문자열 cbab의 경우 dict_keys ([ 'a', 'b', 'c'])
이고 키는 dict_keys ([ 'c', 'b', 'a'])입니다.