Python: 多数要素のリストを10個ずつのリストの集合にする

Pythonで多数の要素を持つリストを、 10個区切りのリストの集合に変換するコードを紹介します。 以下にサンプルデータと共にコードを示します。

サンプルデータ

元のリスト: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37]

10個区切りのリストの集合:
チャンク 1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
チャンク 2: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
チャンク 3: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
チャンク 4: [31, 32, 33, 34, 35, 36, 37]

サンプルコード

def chunk_list(lst, chunk_size=10):
	return [lst[i:i + chunk_size] for i in range(0, len(lst), chunk_size)]

# サンプルデータ
sample_list = list(range(1, 38))  # 1から37までの数字のリスト

# 10個区切りのリストの集合に変換
result = chunk_list(sample_list)

print("元のリスト:", sample_list)
print("\n10個区切りのリストの集合:")
for i, chunk in enumerate(result, 1):
	print(f"チャンク {i}: {chunk}")

このコードを実行すると、以下のような出力が得られます:

元のリスト: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37]

10個区切りのリストの集合:
チャンク 1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
チャンク 2: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
チャンク 3: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
チャンク 4: [31, 32, 33, 34, 35, 36, 37]

このコードの特徴:

  1. chunk_list関数は、リストと分割サイズ(デフォルトは10)を引数に取ります。
  2. リスト内包表記を使用して、元のリストを指定されたサイズのチャンクに分割します。
  3. 最後のチャンクは、元のリストの要素数が分割サイズで割り切れない場合、10個未満になる可能性があります。
  4. サンプルデータとして、1から37までの数字のリストを使用しています。これにより、最後のチャンクが10個未満の要素を持つ例を示しています。
  5. 結果を見やすく表示するために、各チャンクに番号を付けて出力しています。

このコードは、大きなリストを扱う際に便利で、データ処理やバッチ処理などの場面で活用できます。

Python