Python 3でリストをチャンクごとにイテレートする方法

PYTHON3 チュートリアル

Python 3でリストをチャンクごとにイテレートする方法

Python 3では、リストを指定したサイズのチャンクに分割してイテレートする方法があります。この方法を使うことで、大きなリストを小さな塊に分けて効率的に処理することができます。

方法1: イテレータを使った方法

最初の方法は、イテレータを使ってリストをチャンクに分割する方法です。以下はそのコード例です。

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

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
chunk_size = 3

for chunk in chunk_iterator(my_list, chunk_size):
    print(chunk)

上記のコードを実行すると、以下の出力が得られます。

[1, 2, 3]
[4, 5, 6]
[7, 8, 9]

方法2: zipを使った方法

別の方法として、zip関数を使ってリストをチャンクに分割する方法もあります。以下はそのコード例です。

def chunk_zip(lst, chunk_size):
    return zip(*[iter(lst)]*chunk_size)

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
chunk_size = 3

for chunk in chunk_zip(my_list, chunk_size):
    print(list(chunk))

上記のコードを実行すると、以下の出力が得られます。

[1, 2, 3]
[4, 5, 6]
[7, 8, 9]

方法3: itertoolsを使った方法

最後に、itertoolsモジュールを使ってリストをチャンクに分割する方法も紹介します。以下はそのコード例です。

import itertools

def chunk_itertools(lst, chunk_size):
    it = iter(lst)
    return iter(lambda: list(itertools.islice(it, chunk_size)), [])

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
chunk_size = 3

for chunk in chunk_itertools(my_list, chunk_size):
    print(chunk)

上記のコードを実行すると、以下の出力が得られます。

[1, 2, 3]
[4, 5, 6]
[7, 8, 9]

これらの方法を使うことで、Python 3でリストをチャンクごとにイテレートすることができます。それぞれの方法を使って、効率的かつ簡潔にリストを処理することができます。

Python 3でリストをチャンクごとにイテレートする方法は、リストを指定したサイズの部分リストに分割し、それぞれの部分リストを順番に処理することです。この方法を実現するために、以下のようなコードを使用することができます。

“`python
def chunk_iterator(lst, chunk_size):
for i in range(0, len(lst), chunk_size):
yield lst[i:i + chunk_size]

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
chunk_size = 3

for chunk in chunk_iterator(my_list, chunk_size):
print(chunk)
“`

このコードでは、`chunk_iterator`関数が与えられたリストを指定したサイズの部分リストに分割し、それぞれの部分リストを`yield`を使って順番に返します。その後、`for`ループを使って各部分リストを取得し、処理することができます。

購読
通知
0 Comments
Inline Feedbacks
View all comments