When will you grow up?

'dict' object has no attribute 'iteritems' 오류 본문

02. Study/Python

'dict' object has no attribute 'iteritems' 오류

미카이 2017. 5. 15. 17:11

python을 사용하다보면 items() 함수와 iteritems()라는 함수가 종종 사용되는것을 볼 수 있는데, 파이썬 버전에 따라 다른 결과를 나타낸다


원래 python item()는 tuple을 원소로 가지는 list를 return했다.

ex) tuple은 리스트와 비슷한 자료형이며,

    tu = ('abc',1,3,'tuple')  / answer = {"a": (3**2), "b": (3**4-2)} 이러한 값들을 리턴받을 수 있으며 보통 for문을 이용하여 리턴받는다.  그런데 이러한 방법은 메모리를 많이 잡아먹기 때문에, generator가 도입된 후 메모리를 효율성을 위하여 items() 대신 iteritems()를 사용.

python 2.x버전에서는 구버전과 호환성을 위해 items() , iteritems() 둘다 지원했지만 python3에서는 list가 아닌 iterator를 return하고 iteritems() 함수는 쓸 수 없다.



1
2
3
4
5
6
7
8
9
answers = {"a": (3**.5+4)**.5"b":(3**.5-1)**.5"c": (3+4*6**.5)**.5"d":(9-6**.5)**.5}
 
for key, ans in answers.items():   #python3에서는 answers.iteritems() 대신 answers.item() 사용
    print("key 값 :", key, "answers 값 : ",ans)
 
#key 값 : a answers 값 :  2.3941701709713277
#key 값 : b answers 값 :  0.8555996771673521
#key 값 : c answers 값 :  3.57742351017219
#key 값 : d answers 값 :  2.5593964634688433
cs



Comments