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
d[k] is v
파이썬은 -5에서 256 사이의 모든 정수에 대해 정수 객체 배열을 유지하므로 항상 True를 반환합니다. docs.python.org/2/c-api/int.html 해당 범위에서 int를 만들면 : 실제로 단지 기존 개체에 대한 참조를 다시 얻을 >> a = 2; b = 2 >> a is b True
하지만>> a = 1234567890; b = 1234567890 >> a is b False
iteritems()
변경 되었습니까 iter()
? 위의 문서 링크가이 답변과 일치하지 않는 것 같습니다.
items()
한 번에 항목을 작성하고 목록을 리턴합니다.iteritems()
제너레이터를 반환합니다. 제너레이터next()
는 호출 될 때마다 한 번에 하나의 항목을 "생성"하는 객체입니다 .