📜  python 拆分列表 - Python (1)

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

Python 拆分列表

在编程过程中,经常需要将一个包含多个元素的列表拆分成若干个小列表,以便于对每个小列表进行不同的操作。Python 提供了多种方法来实现这个目标,本文将为您介绍其中的几种方法。

1. 利用循环实现列表拆分

可以通过循环遍历原始列表,来逐个取出元素并添加到一个新的列表中,如果达到指定数量后将此新列表添加到另外一个大列表中。

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]]
2. 借助 Python 自带的库函数实现列表拆分

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]]
3. 使用 Numpy 库实现列表拆分

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 拆分列表的三种方法,每种方法都有其特点和运用场景,希望对您的编程工作有所帮助。