Python 中的自定义列表拆分
pythonserver side programmingprogramming更新于 2025/11/23 3:56:17
数据分析会引发复杂的场景,需要整理数据以进行移动。在这种情况下,让我们看看如何根据需要将一个大列表拆分成多个子列表。在本文中,我们将探讨实现此目的的方法。
使用 zip 和 for 循环
在这种方法中,我们使用列表切分来从必须进行拆分的点获取元素。然后我们使用 zip 和 for 循环通过 for 循环创建子列表。
示例
Alist = ['Mon', 'Tue', 'Wed', 6, 7, 'Thu', 'Fri', 11, 21, 4]
# 拆分的索引
split_points = [2, 5, 8]
# 给定列表 : " + str(Alist))
# 拆分位置
print("拆分点 : ",split_points)
# 执行拆分
split_list = [Alist[i: j] for i, j in zip([0] +
split_points, split_points + [None])]
# 打印结果
print("The split lists are : ", split_list)
输出
运行上述代码得到以下结果 −
给定列表:['Mon', 'Tue', 'Wed', 6, 7, 'Thu', 'Fri', 11, 21, 4] 拆分点:[2, 5, 8] 拆分列表为:[['Mon', 'Tue'], ['Wed', 6, 7], ['Thu', 'Fri', 11], [21, 4]]
使用 chain 和 zip
chain 函数创建一个迭代器,该迭代器从第一个可迭代对象返回元素,直到用尽。所以它标记了发生分裂的点。然后我们使用 zip 函数将分裂的结果打包成子列表。
示例
from itertools import chain
Alist = ['Mon', 'Tue', 'Wed', 6, 7, 'Thu', 'Fri', 11, 21, 4]
# 拆分的索引
split_points = [2, 5, 8]
# 给定列表 : ", str(Alist))
# 拆分位置
print("拆分点 : ",split_points)
# 执行自定义列表拆分
sublists = zip(chain([0], split_points), chain(split_points, [None]))
split_list = list(Alist[i : j] for i, j in sublists)
# 打印结果
print("拆分列表为 : ", split_list)
输出
运行上述代码得到以下结果 −
给定列表:['Mon', 'Tue', 'Wed', 6, 7, 'Thu', 'Fri', 11, 21, 4] 拆分点:[2, 5, 8] 拆分列表为:[['Mon', 'Tue'], ['Wed', 6, 7], ['Thu', 'Fri', 11], [21, 4]]
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

