简介
在 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()
函数将一个函数应用于列表的每个元素。