网站首页 > 技术文章 正文
partition_list函数的设计目的是将一个列表分割成多个子列表,其中每个子列表的长度尽可能相等。
在批处理任务和并行计算在写并发的时候通常要将数据内容写入执行函数当中,因此需要将一个大的数据集分割成多个部分,以便在多个处理器或机器上并行处理时,这个函数可以帮助均匀地分配数据。
输入数据:
lists = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
得到结果:
lists = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]]
算法
#本文由 曲速引擎(Warp Drive)个人博客 曲速引擎(Warp Drive)CSDN技术博客 曲速引擎(Warp Drive)头条号 联合创作,转载请说明出处谢谢
def partition_list(lists, number):
# 计算每个子列表的目标长度,即原列表长度除以4
children_list_len = int(len(lists) / 4)
# 使用 zip 和 iter 创建一个迭代器,该迭代器每次返回长度为 children_list_len 的元组
list_of_groups = zip(*(iter(lists),) * children_list_len)
# 将元组转换为列表,并将这些列表收集到 data_list 中
data_list = [list(i) for i in list_of_groups]
# 计算不能均匀分配到子列表中的元素数量
count = len(lists) % children_list_len
# 如果有剩余元素,将它们作为一个新的子列表添加到 data_list 中
if count != 0:
data_list.append(lists[-count:])
return data_list
if __name__ == '__main__':
lists = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
success_lists = partition_list(lists, 4)
for i in success_lists:
print(i)
猜你喜欢
- 2024-09-23 Python数据类型之列表list(python列表list函数)
- 2024-09-23 从零开始学Python:第十一课-常用数据结构之列表
- 2024-09-23 苹果鱼教你入门Python(二):列表(列表 python)
- 2024-09-23 Python3 列表详解(python列表入门)
- 2024-09-23 DAY4-step6 Python示例说明range()函数:浮点数,列表,For循环
- 2024-09-23 每天三分钟一起学python之(六)python数据结构——列表
- 2024-09-23 python——列表的使用(python中列表常用方法)
- 2024-09-23 Python小案例38-列表的定义和创建
- 2024-09-23 Python中列表(list(python中列表list索引的用法)
- 2024-09-23 Python基础之列表(python列表教程)
- 1514℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 571℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 512℃MySQL service启动脚本浅析(r12笔记第59天)
- 486℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 486℃启用MySQL查询缓存(mysql8.0查询缓存)
- 468℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 448℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 445℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (83)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)