返回信息流Python3
下面的程序将数据每5个一组,计算每组的平方平均数。
data = [3, 1, 4, 1, 5,
9, 2, 6, 5, 3,
5, 8, 9, 7, 9,
3, 2, 3, 8, 4]
group_sz = 5
cur_list = []
groups = []
for d in data:
cur_list.append(d)
if len(cur_list) == group_sz:
groups.append(x*x for x in cur_list)
cur_list[:] = []
for g in groups:
square_avg = sum(g) / group_sz
print(square_avg)
但输出结果却是
0.0
0.0
0.0
0.0
如何解释这一现象?
这是一条镜像帖。来源:北邮人论坛 / python / #8284同步于 2015/8/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
惊喜不断13
nuanyangyang
2015/8/25镜像同步49 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 asif12 的大作中提到: 】
: 沙发直接回答出来真没意思
: 来自「北邮人论坛手机版」
这是同学遇到的真实问题。总觉得就连Python这么简单易懂的语言,一涉及到闭包什么的,没有语言律师还是搞不定。
还有点不懂。。。
如果放一个循环在for g in groups前面例如
for i in groups[0]:
print i
为什么不返回任何结果呢?
【 在 nuanyangyang 的大作中提到: 】
: Python3
: 下面的程序将数据每5个一组,计算每组的平方平均数。
: [code=python]
: ...................
【 在 pzhfreeze 的大作中提到: 】
: 还有点不懂。。。
: 如果放一个循环在for g in groups前面例如
: for i in groups[0]:
: ...................
generator是一次性的。
soga,原来generator在调用的时候才开始执行。可是参数都变了...
【 在 nuanyangyang 的大作中提到: 】
:
: 【 在 pzhfreeze 的大作中提到: 】
: : 还有点不懂。。。
: : 如果放一个循环在for g in groups前面例如
: : for i in groups[0]:
: :
: .........
发自「贵邮」