반응형
질문
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)
반응형
댓글