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

for x in x for x这种语法,不太理解啊

print([x for x in range(100,1000) if str(x)[0]==str(x)[-1]])

谁来通俗易懂的个我讲解下啊,我只知道是什么意思,不理解怎么可以这样运行啊,语法看的懂,原理不清楚。。。。

正在回答

1 回答

这种式子分3部分,第一部分是  x  第二部分是 for后面的,第三部分是 if后面的

str方法将x变成字符串处理,由于for后面的区间是100到1000的三位数数字。

str(x)[0] 取首位数字的字符内容,str(x)[-1]取最后一个位置的字符内容,这个过滤条件就可以得到对称数字的list了



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

2uo 提问者

我知道式子表达的意思,但是我不清楚运行原理,之前的格式说的都是 for x in x格式,所以如果不看到这种写法的话,自己是想不到这种写法的
2016-08-03 回复 有任何疑惑可以回复我~
#2

icediv 回复 2uo 提问者

我的理解就是这种特别的处理方式应该是python底层实现的语法糖,按照这个结构构建list就好了。至于原理,估计只有参考python语言的源码了。就像你说的,没见过这种方式,自己肯定是想不到会这样写的,至少java,php是不支持这样的。python还是为了简化表达,设计了很多小巧的方式,比如之前遇到两个变量交换值的方式就是别的语言少见的 a,b=b,a
2016-08-04 回复 有任何疑惑可以回复我~
#3

2uo 提问者 回复 icediv

主要是这种靠记忆的,下次遇到类似的还是很容易忽略这种写法。。。还是想理解原理,这样更通透。
2016-08-04 回复 有任何疑惑可以回复我~
#4

慕雪2328642 回复 icediv

[x,y]=[y,x]结构赋值
2017-12-05 回复 有任何疑惑可以回复我~
查看1条回复

举报

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

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

进入课程

for x in x for x这种语法,不太理解啊

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号