为了账号安全,请及时绑定邮箱和手机立即绑定

双层for列表生成式疑问

print [x1*x2 for x1 in range(1,100,2) for x2 in range(2,100,2)]

打印不出来:[1*2,3*4,5*6,...]

却打印出:[2,4,6,8,10,12............]

然而:

       print [x1 for x1 in range(1,100,2)] 是:[1,3,5,7,9....]

       print [x1 for x1 in range(1,100,2)] 是:[2,4,6,8,10....]

按照这个值,x1*x2就是:[1*2,3*4,5*6,...]

对:print [x1*x2 for x1 in range(1,100,2) for x2 in range(2,100,2)] 的最终结果表示疑惑。


正在回答

2 回答

你可以看看运行结果的长度 ,两个循环先取外层一个和里层所有进行乘法运算就是1*(2,4,6,8,...)就是你看到的最前面的结果,所以这么迭代结果会很长

这里应该用x*(x+1)更合适


2 回复 有任何疑惑可以回复我~
#1

GB_Chan 提问者

哈哈哈哈哈哈忽略了两重循环的运作方式?,第一层进去1,然后用1*进去第二层的所有才会出来再用2*。谢啦
2019-05-28 回复 有任何疑惑可以回复我~

?我也是这样的,看了这个才知道错在哪里

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

双层for列表生成式疑问

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信