Pythonでリストを均等に分割する方法はいくつかありますが、特にジェネレーターやリスト内包表記が一般的です。まず、以下のジェネレーター関数を使用すると、効率的にリストをn個ずつに分割できます。

def chunks(lst, n):
    for i in range(0, len(lst), n):
        yield lst[i:i + n]

リストをリスト内包表記で分割する簡単な方法もあります。

lst = list(range(50))
chunks = [lst[i:i + 10] for i in range(0, len(lst), 10)]

さらに、Python 3.12以降ではitertools.batched()を使うことでリストを分割できます。

import itertools
list(itertools.batched(range(50), 10))

このように、Pythonでは複数の方法でリストを均等に分割でき、用途に応じて選択可能です。