Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 dict.items()와 dict.iteritems()의 차이점은 무엇일까?

파이썬에서 딕셔너리의 키와 값을 순회할 때 사용하는 items()iteritems() 메서드는 버전에 따라 동작 방식과 지원 여부가 다릅니다. 이 글에서는 두 메서드의 차이점을 파이썬 2.x와 3.x 기준으로 명확하게 정리해 드립니다.

Python 2.x에서의 차이점

Python 2.x에서는 두 메서드를 모두 사용할 수 있지만, 내부적으로 동작하는 방식이 서로 다릅니다.

dict.items()

items() 메서드는 딕셔너리 객체의 모든 키-값 쌍을 리스트(list) 형태로 반환합니다. 반환되는 리스트의 각 요소는 키와 값으로 이루어진 2개 요소의 튜플(tuple)입니다.

dict.iteritems()

iteritems()제너레이터(generator)로 동작하며, 딕셔너리 항목에 대한 반복자(iterator)를 제공합니다. 전체 목록을 한 번에 메모리에 올리지 않고 항목을 하나씩 순회하기 때문에 대용량 데이터 처리 시 메모리 효율이 더 좋습니다.

>>> d = {'1': 1, '2': 2, '3': 3}
>>> d.items()
[('1', 1), ('2', 2), ('3', 3)]
>>> for i in d.iteritems():
   print i

('1', 1)
('2', 2)
('3', 3)

Python 3.x에서의 변화

Python 3.x부터는 iteritems()더 이상 지원되지 않습니다(deprecated). 대신 items() 메서드가 Python 2의 iteritems()처럼 동작하도록 변경되었습니다.

Python 3의 items()dict_items라는 뷰(view) 객체를 반환하며, 이 객체는 반복 가능(iterable)하기 때문에 for 문에서 바로 사용할 수 있습니다.

>>> d = {'1': 1, '2': 2, '3': 3}
>>> d.items()
dict_items([('1', 1), ('2', 2), ('3', 3)])
>>> for i in d.items():
   print (i)

('1', 1)
('2', 2)
('3', 3)

정리

  • Python 2.x: items()는 리스트를 반환하고, iteritems()는 반복자를 반환합니다.
  • Python 3.x: iteritems()는 제거되었으며, items()가 뷰 객체를 반환하여 반복자처럼 동작합니다.
  • Python 2 코드를 Python 3로 마이그레이션할 때는 d.iteritems()d.items()로 교체하면 됩니다.