gpt4 book ai didi

itertools.product 的 python 输入

转载 作者:太空宇宙 更新时间:2023-11-03 19:37:07 25 4
gpt4 key购买 nike

在寻找一种模拟嵌套循环(或笛卡尔积)的方法时,我遇到了 itertools.product 函数。我需要一个函数或一段代码来接收整数列表作为输入并返回特定的生成器。

示例:
输入 = [3,2,4] -> gen = 产品(xrange(3),xrange(2),xrange(4))

输入 = [2,4,5,6] -> gen = 产品(xrange(2),xrange(4),xrange(5),xrange(6))

由于列表的大小各不相同,我很困惑如何做到这一点,而不需要基于大量的 if 和列表的大小进行大量预编码。

调用product(range(3)) 或product(xrange(3)) 也有区别吗?

最佳答案

def bigproduct(*args):
newargs = [xrange(x) for x in args]
return itertools.product(*newargs)

for i in bigproduct(3, 2, 4):
....

range() 预先生成一个列表,因此预先使用时间和更多空间,但获取每个元素所需的时间更少。 xrange() 动态生成每个元素,因此占用更少的空间和初始时间,但返回每个元素需要更多时间。

关于itertools.product 的 python 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3020684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com