>  기사  >  백엔드 개발  >  목록을 거의 동일한 부분으로 분할하는 방법은 무엇입니까?

목록을 거의 동일한 부분으로 분할하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-13 04:24:02897검색

How to Split a List into Nearly Equal Parts?

목록을 동일한 부분으로 나누기

요소 목록으로 작업할 때 요소 목록을 더 작고 대략 동일한 부분으로 분할해야 할 수도 있습니다. 부분품. 이는 데이터 처리, 병렬 컴퓨팅 또는 분산 알고리즘과 같은 작업에 특히 유용할 수 있습니다. 다음은 목록을 n개의 부분으로 효과적으로 나누는 방법에 대한 탐색입니다.

해결책:

목록을 n개의 부분으로 거의 동일하게 분할하려면 다음을 수행하세요. 다음 단계를 수행할 수 있습니다.

  1. 목록의 길이를 나누어 몫 k와 나머지 m을 계산합니다. by n: k, m = divmod(len(a), n).
  2. 목록 생성기를 활용하여 분할 부분을 생성합니다: (a[i*k min(i, m):(i 1) *k min(i 1, m)] for i in range(n)).

이 접근 방식을 사용하면 부분이 거의 균등하게 분할되고 첫 번째 m 부분에 하나의 추가 부분이 포함됩니다. 나머지 n-m 부분보다 요소가 더 많습니다.

예:

이 방법의 효율성을 설명하기 위해 11개의 정수 목록인 range(11)를 고려해 보세요. 분할 기능을 사용하여 이 목록을 3개 부분으로 나누면 다음과 같은 결과가 나옵니다.

>>> list(split(range(11), 3))

[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]

볼 수 있듯이 목록은 대략 동일한 크기의 세 부분으로 나뉘며 첫 번째 부분은 4개의 요소를 포함하고 각각 세 가지 요소를 포함하는 다른 두 부분.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.