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]]
ログイン後にコピー

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

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート