"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 원본 목록에서 N번째 항목마다 새 목록을 생성하는 방법은 무엇입니까?

원본 목록에서 N번째 항목마다 새 목록을 생성하는 방법은 무엇입니까?

2024-11-08에 게시됨
검색:576

How to Generate a New List with Every Nth Item from an Original List?

원본 목록의 N번째 항목마다 목록 생성

데이터 분석이나 프로그래밍에서는 다음의 하위 집합을 사용하여 작업해야 하는 경우가 많습니다. 목록. 일반적인 작업 중 하나는 원래 목록의 모든 N번째 항목만 포함하는 새 목록을 만드는 것입니다. 예를 들어, 0부터 1000까지의 정수 목록이 있는 경우 첫 번째 항목과 이후의 모든 10번째 항목만 포함하는 목록을 어떻게 얻을 수 있습니까?

기존 for 루프를 사용하면 다음과 같이 이 작업을 수행할 수 있습니다.

xs = list(range(1001))
new_list = []
for i, x in enumerate(xs):
    if i % 10 == 0:
        new_list.append(x)

그러나 Python의 슬라이싱을 사용하면 보다 간결하고 효율적인 접근 방식을 사용할 수 있습니다.

>>> xs = list(range(1001))
>>> new_list = xs[0::10]

이 솔루션에서 xs[0::10] 표현식은 인덱스 0부터 시작하여 10번째 항목을 모두 포함하는 새 목록을 만듭니다. 결과는 [0을 포함하는 목록입니다. , 10, 20, 30, ..., 1000] 반복이나 조건 검사가 필요하지 않습니다.

이 방법은 for 루프보다 훨씬 빠릅니다. 접근 방식으로 큰 목록을 처리할 때 유리한 것으로 입증되었습니다. 다음 타이밍 비교에서 알 수 있듯이:

$ 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

슬라이싱을 사용하는 이 최적화된 접근 방식은 원본 목록의 N번째 항목마다 새 목록을 생성하는 데 단순성과 성능 이점을 모두 제공합니다.

릴리스 선언문 이 글은 1729392499에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3