📜  Python|自定义列表拆分(1)

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

自定义列表拆分

在Python中,有时候我们需要将一个列表按照指定的大小进行拆分,以便于分批处理或展示数据。本文将介绍一种自定义列表拆分的方法。

代码实现
def chunk_list(lst, chunk_size):
    """
    将列表拆分为指定大小的子列表,最后一个子列表可能小于chunk_size。
    :param lst: 列表
    :param chunk_size: 拆分大小
    :return: 子列表的列表
    """
    return [lst[i:i+chunk_size] for i in range(0, len(lst), chunk_size)]

代码解释:

  1. chunk_list 函数接受两个参数:一个列表 lst 和一个整数 chunk_size,并返回一个新列表,其中包含多个子列表。
  2. range 函数中,start 参数默认为 0step 参数默认为 1stop 参数为 len(lst),所以这个表达式等价于 [0, chunk_size, chunk_size*2, chunk_size*3, ...]
  3. 利用列表切片 [i:i+chunk_size] 来获取每个子列表。
案例应用

例如,我们现在有一个列表包含 15 个整数:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

我们可以使用 chunk_list 函数将其拆分为大小为 4 的多个子列表:

>>> chunk_list(my_list, 4)
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15]]

也可以拆分成大小为 5 的子列表:

>>> chunk_list(my_list, 5)
[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
总结

自定义列表拆分是一个很实用的技巧,可以帮助我们在处理数据时更加简单和高效。上面的代码实现也可以根据需求进行修改和调整,以适应不同的应用场景。