[Python]yieldでリスト(List)を特定の個数ずつに分割するには?

python

どうも、ちょげ(@chogetarou)です。

yieldを使って、リスト(List)を特定の個数ずつに分割する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

yieldを使って、リスト(List)を特定の個数ずつに分割するには、forループとスライスを使います。

まず、range()をforループします。

range()の第1引数に0、第2引数にリストの長さ、第3引数に個数を指定します。

そして、ループ処理で、リストをforループの変数から個数分スライスします。

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

上記の関数は、第1引数のリスト(List)を第2引数の個数ずつで分割します。

使用例

def split_list(l, n):
    for i in range(0, len(l), n):
        yield l[i:i+n]
        
numbers = [1, 2, 3, 4, 5, 6,]

result = list(split_list(numbers, 3))
print(result) #[[1, 2, 3], [4, 5, 6]]

r,s,t = split_list(numbers, 2)
print(r) #[1, 2]
print(s) #[3, 4]
print(t) #[5, 6]

コメント

タイトルとURLをコピーしました