はじめに
Python では、簡単な関数を使ってリストを等しいサイズの小さなリストに分割できます。これは、大量のデータを小さなチャンクに分割して処理したい場合に便利です。このチャレンジでは、リストと整数 n
を入力として受け取り、元のリストの要素を等しく含む n
個の小さなリストのリストを返す関数を書くよう求められます。
This tutorial is from open-source community. Access the source code
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
Python では、簡単な関数を使ってリストを等しいサイズの小さなリストに分割できます。これは、大量のデータを小さなチャンクに分割して処理したい場合に便利です。このチャレンジでは、リストと整数 n
を入力として受け取り、元のリストの要素を等しく含む n
個の小さなリストのリストを返す関数を書くよう求められます。
chunk_into_n(lst, n)
という Python 関数を書きましょう。この関数は、リスト lst
と整数 n
を入力として受け取り、n
個の小さなリストのリストを返します。各小さなリストは、元のリストから等しい数の要素を含んでいます。元のリストを n
個の小さなリストに均等に分割できない場合、最後のチャンクは残りの要素を含みます。
この問題を解くには、次の手順に従うことができます。
n
で割り、math.ceil()
関数を使って最も近い整数に切り上げることで、各チャンクのサイズを計算します。list()
と range()
関数を使って、サイズ n
の新しいリストを作成します。map()
関数を使って、新しいリストの各要素を、サイズ size
の元のリストのチャンクにマッピングします。あなたの関数は次のシグネチャを持つ必要があります。
def chunk_into_n(lst: list, n: int) -> list:
from math import ceil
def chunk_into_n(lst, n):
size = ceil(len(lst) / n)
return list(
map(lambda x: lst[x * size:x * size + size],
list(range(n)))
)
chunk_into_n([1, 2, 3, 4, 5, 6, 7], 4) ## [[1, 2], [3, 4], [5, 6], [7]]
このチャレンジでは、Python を使ってリストを等しいサイズの小さなリストに分割する方法を学びました。また、最も近い整数に切り上げるための math.ceil()
関数と、リストの各要素に関数を適用するための map()
関数の使い方も学びました。