📅  最后修改于: 2023-12-03 15:34:11.647000             🧑  作者: Mango
在编程过程中,经常需要将一个包含多个元素的列表拆分成若干个小列表,以便于对每个小列表进行不同的操作。Python 提供了多种方法来实现这个目标,本文将为您介绍其中的几种方法。
可以通过循环遍历原始列表,来逐个取出元素并添加到一个新的列表中,如果达到指定数量后将此新列表添加到另外一个大列表中。
def split_list(lst, size):
new_list = []
for i in range(0, len(lst), size):
new_list.append(lst[i:i+size])
return new_list
使用示例:
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
size = 3
new_list = split_list(lst, size)
print(new_list) # [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
Python 内置的 itertools
模块提供了一个 zip_longest
函数,可以将多个元素拼接在一起返回一个迭代器,我们可以先将原始列表切片为指定大小的若干个小列表,再借助 zip_longest()
拼接在一起。
from itertools import zip_longest
def split_list(lst, size):
return([list(filter(None, i)) for i in zip_longest(*([iter(lst)] * size))])
使用示例:
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
size = 3
new_list = split_list(lst, size)
print(new_list) # [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
Numpy 是 Python 数据科学的核心库之一,提供了许多高效的数组操作函数。其中,numpy.array_split()
函数可以实现对数组的分割操作。
import numpy as np
def split_list(lst, size):
return np.array_split(lst, size)
使用示例:
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
size = 3
new_list = split_list(lst, size)
print(new_list) # [array([1, 2, 3]), array([4, 5, 6]), array([7, 8, 9]), array([10])]
以上就是我介绍的 Python 拆分列表的三种方法,每种方法都有其特点和运用场景,希望对您的编程工作有所帮助。