リストをほぼ同じ長さの部分に分割する
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]]
この例では、リスト range(11) は 3 つの部分に分割され、サイズ 4、4、および 3 のチャンクが生成されます。
以上がPython でリストをほぼ同じ部分に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。