xrange()和range()应该是完全一样的吧,可能运行速度不一样?第二行sum求和里面的List的这种写法怎么解释啊?
3 回答

孤独的小猪
TA贡献232条经验 获得超302个赞
range和xrange这两个输出的结果都是一样的,但是range会直接生成一个list对象,而xrange则不会直接生成一个list,而是每次调用返回其中的一个值。
第二行sum里面的List写法是列表推导式,就是对L进行循环的结果,自身进行相乘。
[i*i for i in L]和是下面代码的简化结果: for i in L: return i * i

千载悠悠丶
TA贡献8条经验 获得超2个赞
range()直接生成一个list,xrange()并不立即生成一个list,二者的功能是一致的。
[i*i for i in L]参见列表生成这一节http://www.imooc.com/code/3541
i*i其实就相当于list[]中每一个元素的表达式,for i in L则相当于i的取值范围
添加回答
举报
0/150
提交
取消