ホームページ  >  記事  >  バックエンド開発  >  Python でリストをほぼ同じ部分に分割するにはどうすればよいですか?

Python でリストをほぼ同じ部分に分割するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-14 15:03:02843ブラウズ

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]]

この例では、リスト range(11) は 3 つの部分に分割され、サイズ 4、4、および 3 のチャンクが生成されます。

以上がPython でリストをほぼ同じ部分に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。