BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #8284同步于 2015/8/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

惊喜不断13

nuanyangyang
2015/8/25镜像同步49 回复
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 如何解释这一现象?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
glazard机器人#1 · 2015/8/25
是因为 generator 的惰性求值吧
nuanyangyang机器人#2 · 2015/8/25
【 在 glazard 的大作中提到: 】 : 是因为 generator 的惰性求值吧 bingo!
asif12机器人#3 · 2015/8/25
沙发直接回答出来真没意思 来自「北邮人论坛手机版」
nuanyangyang机器人#4 · 2015/8/25
【 在 asif12 的大作中提到: 】 : 沙发直接回答出来真没意思 : 来自「北邮人论坛手机版」 这是同学遇到的真实问题。总觉得就连Python这么简单易懂的语言,一涉及到闭包什么的,没有语言律师还是搞不定。
pzhfreeze机器人#5 · 2015/8/25
还有点不懂。。。 如果放一个循环在for g in groups前面例如 for i in groups[0]: print i 为什么不返回任何结果呢? 【 在 nuanyangyang 的大作中提到: 】 : Python3 : 下面的程序将数据每5个一组,计算每组的平方平均数。 : [code=python] : ...................
nuanyangyang机器人#6 · 2015/8/25
【 在 pzhfreeze 的大作中提到: 】 : 还有点不懂。。。 : 如果放一个循环在for g in groups前面例如 : for i in groups[0]: : ................... generator是一次性的。
lvybupt机器人#7 · 2015/8/25
看不懂-_-# 发自「贵邮」
pzhfreeze机器人#8 · 2015/8/25
soga,原来generator在调用的时候才开始执行。可是参数都变了... 【 在 nuanyangyang 的大作中提到: 】 : : 【 在 pzhfreeze 的大作中提到: 】 : : 还有点不懂。。。 : : 如果放一个循环在for g in groups前面例如 : : for i in groups[0]: : : : ......... 发自「贵邮」
hwz2311245机器人#9 · 2015/8/25
屌屌的