728x90
반응형
질문 : Python2에서 dict.items ()와 dict.iteritems ()의 차이점은 무엇입니까?
dict.items()
와 dict.iteritems()
사이에 적용 가능한 차이점이 있습니까?
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
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python의 easy_install로 설치된 패키지를 제거하는 방법 (0) | 2021.07.23 |
---|---|
[Python] 다중 처리 vs 스레딩 (0) | 2021.07.22 |
Python-입력한 두 값 사이의 값으로 배열 생성하기 (0) | 2021.07.22 |
Pandas 데이터 프레임에서 여러 열 선택 (0) | 2021.07.20 |
Python 요청으로 JSON 데이터를 게시하는 방법 (0) | 2021.07.19 |