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 |