본문 바로가기
Python/Python FAQ

Python 제너레이터나 리스트에서 처음 N개의 항목을 가져오는 방법은 무엇인가요? [중복됨], How to take the first N items from a generator or list? [duplicate]

by 베타코드 2023. 12. 4.
반응형

질문


linq을 사용하면

var top5 = array.Take(5);

파이썬으로 이것을 어떻게 할 수 있을까요?


답변


리스트 슬라이싱

top5 = array[:5]
  • 리스트를 슬라이싱하기 위해 간단한 구문이 있습니다: array[start:stop:step]
  • 어떤 매개변수도 생략할 수 있습니다. 다음은 모두 유효합니다: array[start:], array[:stop], array[::step]

제너레이터 슬라이싱

import itertools
top5 = itertools.islice(my_list, 5) # 첫 다섯 개의 요소 가져오기
  • 파이썬에서는 직접적으로 제너레이터를 슬라이싱할 수 없습니다. itertools.islice()는 객체를 새로운 슬라이싱 제너레이터로 감싸주며 다음과 같은 구문을 사용합니다: itertools.islice(generator, start, stop, step)

  • 제너레이터를 슬라이싱하면 일부만 소진됩니다. 제너레이터를 완전히 유지하려면, 아마도 먼저 튜플이나 리스트로 변환하는 것이 좋습니다. 예를 들어: result = tuple(generator)

반응형

댓글