📜  在Python中将列表分成大小为 N 的块(1)

📅  最后修改于: 2023-12-03 15:37:38.237000             🧑  作者: Mango

在Python中将列表分成大小为N的块

在Python中,我们可以使用以下方法将一个列表分成大小为N的块:

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

这个函数接受两个参数,即要分块的列表lst和块的大小n。它使用列表推导式和range函数来切片原始列表,并将它们组合成新的块。

以下是一个使用示例:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
chunked_list = chunk_list(my_list, 3)
print(chunked_list)

这将输出:

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

在这个示例中,我们将一个大小为9的列表分成大小为3的块。输出结果是一个由三个子列表组成的列表,每个子列表包含三个元素。

此外,我们也可以使用Python的内置模块itertools来完成相同的任务。以下是使用itertools.groupby和enumerate函数的示例:

import itertools

def chunk_list(lst, n):
    return [list(group) for i, group in itertools.groupby(lst, lambda x: i // n)]

这个函数使用groupby函数将原始列表按照索引分组,然后使用enumerate函数来获取分组的索引,最后将它们打包成新的列表。与第一个方法类似,这个函数也接受两个参数,要分块的列表lst和块的大小n。

以下是使用itertools的示例:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
chunked_list = chunk_list(my_list, 3)
print(chunked_list)

这将输出:

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

这种方法的效果与第一个方法相同。

无论你选择哪种方法,都可以轻松地将一个列表分成大小为N的块。这对于数据处理和分析非常有用。