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

Python에서 딕셔너리를 원하는 길이로 자르는 방법

itertools.islice() 함수 소개

파이썬 표준 라이브러리에 포함된 itertools 모듈은 Clojure, Haskell과 같은 함수형 프로그래밍 언어에서 영감을 받은 다양한 이터레이터 생성 도구를 제공합니다. 이 모듈의 대표적인 함수 중 하나가 바로 islice()입니다.

islice()는 반복 가능한(iterable) 객체에서 특정 범위의 요소만 선택하여 새로운 이터레이터를 반환하는 함수입니다. 함수의 기본 구문은 다음과 같습니다.

islice(sequence, start, stop, step)
  • sequence: 잘라낼 대상이 되는 반복 가능한 객체
  • start: 선택을 시작할 인덱스
  • stop: 선택을 종료할 인덱스 (해당 인덱스는 포함되지 않음)
  • step: 요소를 건너뛰는 간격

딕셔너리 자르기 예제

딕셔너리에 items() 메서드를 적용하면 키-값 쌍을 반복할 수 있으므로, islice()와 함께 사용하면 원하는 개수만큼 항목을 추출할 수 있습니다. 아래 예제는 주어진 딕셔너리에서 처음 세 개의 항목만 선택하여 딕셔너리를 자르는 과정을 보여줍니다.

>>> D1={"pen":25, "pencil":10, "book":100, "sharpner":5, "eraser":5}
>>> import itertools
>>> D2=dict(itertools.islice(D1.items(),3))
>>> D2
{'pen': 25, 'pencil': 10, 'book': 100}

실행 결과를 보면 원본 딕셔너리 D1에는 5개의 항목이 있었지만, islice(D1.items(), 3)를 통해 앞의 3개 항목만 선택되고, 이를 dict()로 감싸 새로운 딕셔너리 D2가 만들어진 것을 확인할 수 있습니다.

마무리

이처럼 itertools.islice()를 활용하면 별도의 반복문 없이 한 줄의 코드로 딕셔너리를 손쉽게 자를 수 있습니다. 리스트 슬라이싱과 유사한 방식으로 동작하지만, 이터레이터를 반환하기 때문에 대용량 데이터를 다룰 때도 메모리 효율적이라는 장점이 있습니다.