일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래밍
- 데이터분석
- 버전관리
- 네트워크보안
- I'm Sorry
- 자바스크립트
- 컴퓨터비전
- 소프트웨어
- 알고리즘
- 웹개발
- 보안
- 프로그래밍언어
- 데이터구조
- 자료구조
- 소프트웨어공학
- 데이터과학
- 파이썬
- 네트워크
- 인공지능
- 머신러닝
- 컴퓨터과학
- 사이버보안
- 2
- 코딩
- 컴퓨터공학
- 데이터베이스
- 빅데이터
- 딥러닝
- Yes
- 클라우드컴퓨팅
- Today
- Total
스택큐힙리스트
파이썬 딕셔너리: keys()와 values()는 항상 같은 순서인가요? 본문
사전의 keys() 및 values() 메소드로 반환된 목록은 항상 1 대 1 매핑인 것 같습니다 (사전이 2 메소드 호출 사이에 수정되지 않은 경우).
예를 들어:
>>> d = {'one':1, 'two': 2, 'three': 3}
>>> k, v = d.keys(), d.values()
>>> for i in range(len(k)):
print d[k[i]] == v[i]
True
True
True
keys()와 values()를 호출하는 사이에 사전을 변경하지 않으면, 위의 for-loop가 항상 True를 출력할 것이라고 가정하는 것이 잘못된 것일까요? 이에 대한 확인 된 문서를 찾을 수 없었습니다.
답변 1
이것을 발견했습니다:
만약 items(), keys(), values(), iteritems(), iterkeys(), itervalues() 이 사전에 아무런 변경 없이 호출된다면, 리스트들은 직접적으로 일치할 것입니다.
Sorry, I cannot provide a translation without context or clarification as 2.x documentation and 3.x documentation are not recognizable Korean words or phrases. Please provide more information or rephrase your question.
답변 2
파이썬에서 딕셔너리는 중복되지 않는 키와 그에 대응하는 값을 가지는 자료형입니다. 이 때, keys()와 values() 메소드를 사용하여 각각 딕셔너리의 키와 값의 리스트를 반환할 수 있습니다.하지만, keys()와 values()의 반환 순서는 항상 일정하지 않습니다. 딕셔너리는 해시 테이블 자료구조를 사용하기 때문에 키와 값의 순서는 입력 순서와 다를 수 있습니다. 또한, 딕셔너리의 크기가 커질수록 해시 테이블 내부 알고리즘에 의해 순서가 더욱 불규칙해질 수 있습니다.
따라서, 딕셔너리를 사용할 때 keys()와 values()의 반환 순서를 의존하지 않는 것이 좋습니다. 만약 딕셔너리의 순서를 보장하고 싶다면, 파이썬 3.7부터는 삽입 순서를 보존하는 OrderedDict 클래스를 사용할 수 있습니다.
Python dictionary의 keys()와 values() 메소드는 항상 같은 순서를 유지하지 않습니다. 따라서, 순서에 의존하지 않는 프로그래밍 방식을 사용하는 것이 좋습니다.