python - 如何与来自 5 个不同列表或数组的数百万个元素组合?
问题描述
我想用来自 5 个不同数组的元素进行所有可能的组合。但是,当我运行我的代码时,错误显示数字太高。这个问题会有解决方案吗?
这是我的代码:
import numpy as np
a=np.arange(1000000000)
b=np.arange(2000000000)
c=np.arange(2000000000)
d=np.arange(1000000000)
e=np.arange(1000000000)
from itertools import product
iterables = [a,b,c,d,e]
total_combi_index=[]
for t in product(*iterables):
total_combi_index.append(t)
解决方案
我们有标准库:itertools链方法和 from_iterable 方法:
itertools.chain(*iterables) 创建一个迭代器,从第一个可迭代对象返回元素,直到它耗尽,然后继续到下一个可迭代对象,直到所有可迭代对象都被耗尽。用于将连续序列视为单个序列。大致相当于:
def chain(*iterables):
# chain('ABC', 'DEF') --> A B C D E F
for it in iterables:
for element in it:
yield element
classmethod chain.from_iterable(iterable) chain() 的替代构造函数。从延迟评估的单个可迭代参数获取链接输入。大致相当于:
def from_iterable(iterables):
# chain.from_iterable(['ABC', 'DEF']) --> A B C D E F
for it in iterables:
for element in it:
yield element
在python中,我们使用迭代器来解决这类问题
推荐阅读
- discord - 异步事件结束后如何删除命令的冷却时间?
- excel - 使用 VBA 将 Excel 工作表导出为 PDF
- php - 教义,在 InvalidProxyDirectoryException.php 第 18 行:
- android - Android 本机库链接器在 gradle 更新后停止工作
- html - 汉堡菜单链接无法正常工作
- asp.net - 无法将表“AspNetRoles”用于实体类型“AspNetRoles”,因为它正在用于实体类型“IdentityRole”
- javascript - 函数调用中的 Javascript
- node.js - 如何使用服务器和客户端文件夹结构将 React/Node 应用程序部署到 Heroku?
- spring-boot - 无效的表单输入会抛出 Bad Request 而不进入 springboot 控制器的方法。怎么处理?
- python - 更改用户密码时在 Django 模型中发送邮件的最佳方式?