원본 목록의 N번째 항목마다 목록 생성
데이터 분석이나 프로그래밍에서는 종종 목록. 일반적인 작업 중 하나는 원래 목록의 모든 N번째 항목만 포함하는 새 목록을 만드는 것입니다. 예를 들어, 0부터 1000까지의 정수 목록이 있는 경우 첫 번째 항목과 이후의 모든 10번째 항목만 포함하는 목록을 어떻게 얻을 수 있습니까?
기존 for 루프를 사용하면 다음과 같이 이 작업을 수행할 수 있습니다.
<code class="python">xs = list(range(1001)) new_list = [] for i, x in enumerate(xs): if i % 10 == 0: new_list.append(x)</code>
그러나 Python의 슬라이싱을 사용하면 더 간결하고 효율적인 접근 방식을 사용할 수 있습니다.
<code class="python">>>> xs = list(range(1001)) >>> new_list = xs[0::10]</code>
이 솔루션에서 xs[0::10] 표현식은 다음과 같은 새 목록을 생성합니다. 인덱스 0부터 시작하여 모든 10번째 항목을 포함합니다. 결과는 반복이나 조건부 검사 없이 [0, 10, 20, 30, ..., 1000]을 포함하는 목록입니다.
이 방법이 훨씬 빠릅니다. for 루프 접근 방식보다 큰 목록을 처리할 때 유리한 것으로 입증되었습니다. 다음 타이밍 비교에서 알 수 있듯이:
<code class="python">$ python -m timeit -s "xs = list(range(1000))" "[x for i, x in enumerate(xs) if i % 10 == 0]" 500 loops, best of 5: 476 usec per loop $ python -m timeit -s "xs = list(range(1000))" "xs[0::10]" 100000 loops, best of 5: 3.32 usec per loop</code>
슬라이싱을 사용하는 이 최적화된 접근 방식은 원본 목록의 N번째 항목마다 새 목록을 생성하는 데 단순성과 성능 이점을 모두 제공합니다.
위 내용은 원본 목록에서 N번째 항목마다 새 목록을 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!