키별로 정렬 된 사전의 키 / 값 쌍 반복
dict에 키 / 값 쌍을 인쇄하는 다음 코드가 있습니다 (쌍은 키별로 정렬 됨).
for word, count in sorted(count_words(filename).items()):
print word, count
그러나 iteritems()
대신 호출 items()
하면 동일한 출력 이 생성됩니다.
for word, count in sorted(count_words(filename).iteritems()):
print word, count
이제이 상황에서 어떤 것을 선택해야합니까? 나는 상담 파이썬 자습서를 하지만 정말 내 질문에 대답하지 않습니다.
Python 2.x에서는 둘 다 동일한 결과를 제공합니다. 차이점 items
은 사전의 전체 내용을 포함하는 목록 을 구성하는 반면 iteritems
항목을 한 번에 하나씩 가져 오는 반복자를 제공한다는 것입니다. 일반적으로 iteritems
많은 메모리가 필요하지 않기 때문에 더 나은 선택입니다. 그러나 여기에서 결과를 정렬하고 있으므로이 상황에서 큰 차이가 없을 것입니다. 의심스러운 iteritems
경우 안전한 내기입니다. 성능이 정말 중요하다면 둘 다 측정하고 어느 것이 더 빠른지 확인하십시오.
Python 3.x iteritems
에서는 제거되었으며 items
이제는 iteritems
예전 처럼 하던 일을 수행하여 프로그래머가 어느 것이 더 나은지 고민하는 데 시간을 낭비하는 문제를 해결합니다. :)
참고로, 단어의 발생 횟수를 계산하는 경우 collections.Counter
일반 사전 대신 사용을 고려할 수 있습니다 (Python 2.7 이상 필요).
Marks 답변에 따라 : Python 2에서는을 사용 iteritems()
하고 Python 3에서는 items()
.
그리고 추가로; 두 가지를 모두 지원하고 사용하지 않으면 2to3
다음을 사용하십시오.
counts = count_words(filename)
for word in sorted(counts):
count = counts[word]
참조 URL : https://stackoverflow.com/questions/4550645/iterating-over-key-value-pairs-in-a-dict-sorted-by-keys
'development' 카테고리의 다른 글
git : glob 패턴과 일치하는 디렉토리 하위 트리의 모든 파일을 재귀 적으로 추가하려면 어떻게해야합니까? (0) | 2020.12.30 |
---|---|
Android 환경 설정 키를 저장할 위치 (0) | 2020.12.30 |
time ()은 좋은 소금입니까? (0) | 2020.12.30 |
MVVM 모델에서 모델은 INotifyPropertyChanged 인터페이스를 구현해야합니까? (0) | 2020.12.30 |
동적 메모리 할당은 널리 사용되는 구현에서 C와 C ++에서 다릅니 까? (0) | 2020.12.30 |