【发布时间】:2017-05-20 20:55:21
【问题描述】:
我正在练习使用带有一些循环和 if 的 itertool.accumulate 函数。结果,我想要一个单数列表(变量称为“调用”)和每个周期的总和,即 3。
现在,我设法获得了两个列表,但不是同时获得。我的意思是,一旦打印了一个列表,它就会变成空的。我错过了什么吗?如何打印两个列表?
我将发布两个带有输出的代码,以向您展示我的意思。
FIRST CODE:它只打印单个值
import random as rnd
import itertools
# variables
a = 5
b = int(1)
########
calls = (
tuple((itertools.accumulate(
a if a > rnd.randint(1, 10) else -a
for i in range(b)
for j in range(2))
)
)
for cycle in range(3)
)
#######
print(list(calls))
print(list(sum(call) for call in calls))
[(5, 0), (-5, -10), (5, 0)]
[]
第二个代码:它只打印值的总和 将随机导入为 rnd 导入迭代工具
# variables
a = 5
b = int(1)
########
calls = (
tuple((itertools.accumulate(
a if a > rnd.randint(1, 10) else -a
for i in range(b)
for j in range(2))
)
)
for cycle in range(3)
)
#######
print(list(sum(call) for call in calls)
print(list(calls))
[5, -15, 5]
[]
【问题讨论】: