Python에서 목록을 대략 동일한 부분으로 나누는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-14 15:03:02
원래의
842명이 탐색했습니다.

How to Divide a List into Approximately Equal Parts in Python?

목록을 대략 동일한 길이의 부분으로 나누기

Python에서 내장 함수 청크(코드 스니펫에 제공됨)는 다음을 수행할 수 있습니다. 목록을 지정된 크기의 덩어리로 분할합니다. 그러나 목록을 원하는 청크 크기로 나눌 수 없으면 청크 크기가 고르지 않게 됩니다.

거의 동일한 부분을 생성하려면 목록 생성기를 사용할 수 있습니다.

def split(a, n):
    k, m = divmod(len(a), n)
    return (a[i*k+min(i, m):(i+1)*k+min(i+1, m)] for i in range(n))
로그인 후 복사

이 함수는 목록 길이를 부분 수로 나눌 때 청크 크기(k)와 나머지(m)를 결정합니다. 그런 다음 인덱스 i*k에서 시작하여 인덱스 (i 1)*k에서 끝나는 목록에서 청크를 생성합니다. 이렇게 하면 처음 m개 청크에 나머지 부분의 추가 요소가 포함되어 대략 동일한 크기의 부품이 생성됩니다.

예:

>>> list(split(range(11), 3))
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]
로그인 후 복사

이 예에서는 목록 범위(11)는 세 부분으로 분할되어 크기 4, 4, 3의 청크가 됩니다.

위 내용은 Python에서 목록을 대략 동일한 부분으로 나누는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿