PythonでリストをN個のチャンクに分割する方法について説明します。以下にいくつかの方法を示します。
1. yieldキーワードを使用する
yieldキーワードを使用すると、関数は再度呼び出されたときに中断した場所から再開できます。これは通常の関数との重要な違いです。通常の関数は中断した場所から再開できません。yieldキーワードは関数が状態を覚えておくのに役立ちます。
my_list = ['geeks', 'for', 'geeks', 'like', 'geeky','nerdy', 'geek', 'love', 'questions','words', 'life']
def divide_chunks (l, n):
for i in range(0, len(l), n):
yield l[i:i + n]
n = 5
x = list(divide_chunks(my_list, n))
print(x)
2. ループを使用する
この例では、Pythonのループとリストのスライスを使用してリストをチャンクに分割します。
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
start = 0
end = len(my_list)
step = 3
for i in range(start, end, step):
x = i
print(my_list[x:x+step])
3. リスト内包表記を使用する
リスト内包表記は、Pythonでリストを一行のコードで分割するエレガントな方法です。
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 4
final = [my_list[i * n: (i + 1) * n] for i in range((len(my_list) + n - 1) // n)]
print(final)
これらの方法を使用すると、PythonでリストをN個のチャンクに分割することができます。適切な方法を選択して、コードを最適化しましょう。