Python 3.x 如何将itertools用于嵌套循环?
我正在搜索一种使用Python 3.x 如何将itertools用于嵌套循环?,python-3.x,itertools,Python 3.x,Itertools,我正在搜索一种使用itertools.accumulate的方法,该方法位于starmap中 我试图计算表中每一行的累积和,然后将结果连接到一个数组: #我的输入 my_table=[[3,5]、[1,4,7]、[2]] #预期产量 P=[3,8,1,5,12,2] 我在for循环中使用itertools,但它比其他方法慢得多。 那么,是否有可能使用星图或其他itertools方法使其更快呢 def getSums(我的表格): P=[] 对于范围内的i(len(my_table)): P.a
itertools.accumulate
的方法,该方法位于starmap
中
我试图计算表中每一行的累积和,然后将结果连接到一个数组:
#我的输入
my_table=[[3,5]、[1,4,7]、[2]]
#预期产量
P=[3,8,1,5,12,2]
我在for循环中使用itertools,但它比其他方法慢得多。
那么,是否有可能使用星图或其他itertools方法使其更快呢
def getSums(我的表格):
P=[]
对于范围内的i(len(my_table)):
P.append(itertools.accumulate(我的表[i]))
P=itertools.chain.from_iterable(P)
返回P
您不需要starmap
只需使用内置的map
函数并使用itertools.chain()链接结果即可:
您不需要starmap
只需使用内置的map
函数并使用itertools.chain()链接结果即可:
您可以在一个非常简化的版本中使用初始循环方法,使用extend
,该方法可以采用任何iterable:
P = []
for lst in my_table:
P.extend(accumulate(lst))
您可以在一个非常简化的版本中使用初始循环方法,使用extend
,该方法可以采用任何iterable:
P = []
for lst in my_table:
P.extend(accumulate(lst))
使用Itertools效果很好,下面是引擎盖下发生的事情,你可以写
您自己的解决方案只需使用生成器(无需stdlib)
def chain_cumsum(表):
对于表中的信息:
cumsum(it)的收益率
#写一个函数来获得累计和
def cumsum(升):
总数=0
对于l中的i:
总数+=i
总产量
#然后您可以获得您的输出:
列表(链表(我的表格))
使用Itertools效果很好,下面是引擎盖下发生的事情,您可以编写
您自己的解决方案只需使用生成器(无需stdlib)
def chain_cumsum(表):
对于表中的信息:
cumsum(it)的收益率
#写一个函数来获得累计和
def cumsum(升):
总数=0
对于l中的i:
总数+=i
总产量
#然后您可以获得您的输出:
列表(链表(我的表格))
非常感谢!我试过你的代码,效果很好。非常感谢!我试过你的代码,效果很好。