프로그래밍 언어/Python

Python2에서 dict.items ()와 dict.iteritems ()의 차이점

Rateye 2021. 7. 22. 10:19
728x90
반응형
질문 : Python2에서 dict.items ()와 dict.iteritems ()의 차이점은 무엇입니까?

dict.items()dict.iteritems() 사이에 적용 가능한 차이점이 있습니까?

Python 문서에서 :

dict.items() : 사전의 (키, 값) 쌍 목록 사본 을 반환합니다.

dict.iteritems() : 사전의 (키, 값) 쌍에 대한 반복자 를 반환합니다.

아래 코드를 실행하면 각각 동일한 객체에 대한 참조를 반환하는 것 같습니다. 내가 놓친 미묘한 차이가 있습니까?

#!/usr/bin/python

d={1:'one',2:'two',3:'three'}
print 'd.items():'
for k,v in d.items():
   if d[k] is v: print '\tthey are the same object' 
   else: print '\tthey are different'

print 'd.iteritems():'   
for k,v in d.iteritems():
   if d[k] is v: print '\tthey are the same object' 
   else: print '\tthey are different'

산출:

d.items():
    they are the same object
    they are the same object
    they are the same object
d.iteritems():
    they are the same object
    they are the same object
    they are the same object
답변

그것은 진화의 일부입니다.

원래 Python items() 는 실제 튜플 목록을 만들고이를 반환했습니다. 잠재적으로 많은 추가 메모리가 필요할 수 있습니다.

그런 다음 생성기가 일반적으로 언어에 도입되었으며 해당 메서드는 iteritems() 라는 반복자 생성기 메서드로 다시 구현되었습니다. 원본은 이전 버전과의 호환성을 위해 남아 있습니다.

Python 3의 변경 사항 중 하나는 items() 이제 뷰를 반환하고 list 이 완전히 빌드되지 않는다는 것입니다. iteritems() 메소드는 이후 사라 items() 와 같은 파이썬 3 개 작품 viewitems() 파이썬 2.7 인치

출처 : https://stackoverflow.com/questions/10458437/what-is-the-difference-between-dict-items-and-dict-iteritems-in-python2
728x90
반응형