将列表分割为n个块

将一个列表分割为n个较小的列表。

  • 使用math.ceil()len()来获取每个块的大小。
  • 使用list()range()创建一个大小为n的新列表。
  • 使用map()将新列表的每个元素映射到一个长度为size的块。
  • 如果原始列表无法均匀分割,最后一个块将包含剩余的元素。
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]]