亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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
  • 參與學習       758390    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

for x in x for x這種語法,不太理解啊

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號