programing

이전 버전의 Python 사전에 있는 키 순서

mailnote 2023. 9. 3. 16:29
반응형

이전 버전의 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

반응형