이전 버전의 Python 사전에 있는 키 순서
코드:
d = {'a': 0, 'b': 1, 'c': 2}
l = d.keys()
print l
인쇄합니다.['a', 'c', 'b']
그 방법이 어떤 건지 잘 모르겠어요.keys()
l 내 키워드의 순서를 결정합니다.하지만 "적절한" 순서로 키워드를 검색할 수 있으면 좋겠습니다.물론 적절한 순서로 목록을 작성할 수 있습니다.['a', 'b', 'c']
.
파이썬 3.7+
Python 3.7.0에서는 개체의 삽입 순서 보존 특성이 Python 언어 사양의 공식 부분으로 선언되었습니다.그러므로, 당신은 그것에 의존할 수 있습니다.
Python 3.6(CPython)
Python 3.6 기준으로 Python의 CPython 구현을 위해 사전은 기본적으로 삽입 순서를 유지합니다.그러나 이것은 구현 세부사항으로 간주됩니다. Python의 다른 구현에서 보장되는 삽입 순서를 원할 경우에도 사용해야 합니다.
Python >=2.7 및 <3.6
필요할 때 클래스를 사용합니다.dict
삽입된 항목의 순서를 기억합니다.
OrderedDict(Python 2.7 필요) 이상을 사용할 수 있습니다.
또한, 참고로OrderedDict({'a': 1, 'b':2, 'c':3})
이후로 작동하지 않을 것입니다.dict
사용자가 생성하는{...}
이미 원소의 순서를 잊어버렸습니다.대신에, 당신은 사용하길 원합니다.OrderedDict([('a', 1), ('b', 2), ('c', 3)])
.
설명서에서 언급한 것처럼 Python 2.7 이전 버전의 경우 이 레시피를 사용할 수 있습니다.
>>> print sorted(d.keys())
['a', 'b', 'c']
전달된 반복 가능 항목을 정렬하는 정렬 함수를 사용합니다.
그.keys()
method는 임의의 순서로 키를 반환합니다.
http://docs.python.org/tutorial/datastructures.html 에서:
"사전 객체의 key() 메서드는 사전에 사용된 모든 키의 목록을 임의의 순서로 반환합니다(정렬하려면 sorted() 함수를 적용하십시오)."
사용하고 싶을 때 목록을 정렬하면 됩니다.
l = sorted(d.keys())
사전이 해시맵이기 때문에 순서는 중요하지 않습니다.순서에 따라 어떻게 밀어 넣느냐에 따라 달라집니다.
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의 경우 키는 dict_keys(['a', 'b', 'c'])입니다.
문자열 cbab의 경우 키는 dict_keys(['c', 'b', 'a'])입니다.
언급URL : https://stackoverflow.com/questions/5629023/order-of-keys-in-dictionaries-in-old-versions-of-python
'programing' 카테고리의 다른 글
IntelliJ: 기호 '스프링 프레임워크'를 확인할 수 없습니다. (0) | 2023.09.03 |
---|---|
JavaScript 및 jQuery를 사용한 크로스 브라우저 키 누르기 이벤트(F1-F12) 처리 (0) | 2023.09.03 |
'php app/console dutrin:schema:create'를 실행할 때 "No sheat file or directory" 문제 해결 (0) | 2023.09.03 |
어떻게 하면 농담 모의 함수라는 인수를 얻을 수 있습니까? (0) | 2023.08.29 |
ASP에서 HTML5 다중 파일 업로드를 어떻게 처리합니까?NET MVC? (0) | 2023.08.29 |