Itertools Python
是否有任何方法可以使用itertools产品函数,该函数会一步一步返回列表的每个组合 例如:Itertools Python,python,itertools,Python,Itertools,是否有任何方法可以使用itertools产品函数,该函数会一步一步返回列表的每个组合 例如: itertools.product(*mylist) ->解决方案应该返回列表的第一个组合,然后第二个组合等。正如@ggorlen所解释的,itertools.product(…)返回一个。例如,如果你有 import itertools mylist = [('Hello','Hi'),('Andy','Betty')] iterator = itertools.product(*mylist) n
itertools.product(*mylist)
->解决方案应该返回列表的第一个组合,然后第二个组合等。正如@ggorlen所解释的,
itertools.product(…)
返回一个。例如,如果你有
import itertools
mylist = [('Hello','Hi'),('Andy','Betty')]
iterator = itertools.product(*mylist)
next(迭代器)
或iterator.\uuuu next\uuuu()
将在您第一次调用它们时计算为“Hello Andy”
。当您下次调用next(iterator)
时,它将返回'Hello Betty'
,然后返回'Hi Andy'
,最后返回'Hi Betty'
,然后引发停止迭代
错误
如果您对列表
更熟悉,您还可以使用列表(迭代器)
将迭代器
转换为列表
,但是如果您只需要前几个值,并且mylist
很大,这将非常低效,并且可能值得花时间熟悉迭代器
请考虑一下,你是否真的只是迭代了<代码>迭代器< /代码>。如果是这样,就使用
for combination in iterator:
pass # Body of loop
即使您只需要第一个n
元素,并且n
很大,您也可以使用
for combination in itertools.islice(iterator, n):
pass # Body of loop
正如@ggorlen所解释的,
itertools.product(…)
返回一个。例如,如果你有
import itertools
mylist = [('Hello','Hi'),('Andy','Betty')]
iterator = itertools.product(*mylist)
next(迭代器)
或iterator.\uuuu next\uuuu()
将在您第一次调用它们时计算为“Hello Andy”
。当您下次调用next(iterator)
时,它将返回'Hello Betty'
,然后返回'Hi Andy'
,最后返回'Hi Betty'
,然后引发停止迭代
错误
如果您对列表
更熟悉,您还可以使用列表(迭代器)
将迭代器
转换为列表
,但是如果您只需要前几个值,并且mylist
很大,这将非常低效,并且可能值得花时间熟悉迭代器
请考虑一下,你是否真的只是迭代了<代码>迭代器< /代码>。如果是这样,就使用
for combination in iterator:
pass # Body of loop
即使您只需要第一个n
元素,并且n
很大,您也可以使用
for combination in itertools.islice(iterator, n):
pass # Body of loop
您能否提供示例输入和预期输出?如果没有itAll
itertools
函数返回迭代器,我们可以猜测您的意思,因此您可以说It=itertools.product(我的列表)
并调用It.next()
以获取迭代器中的下一项。哇——我的意思是next(It)
。您能提供一个示例输入和预期输出吗?如果没有itAllitertools
函数返回迭代器,我们可以猜测你的意思,因此你可以说It=itertools.product(我的列表)
,然后调用It.next()
来获取迭代器中的下一项。哎呀——我的意思是next(It)
。