列表生成式的?for?循環后面還可以加上?if?判斷。例如:
>>>?[x?*?x?for?x?in?range(1,?11)]
[1,?4,?9,?16,?25,?36,?49,?64,?81,?100]
如果我們只想要偶數的平方,不改動?range()的情況下,可以加上?if?來篩選:
>>>?[x?*?x?for?x?in?range(1,?11)?if?x?%?2?==?0]
[4,?16,?36,?64,?100]
有了?if?條件,只有?if?判斷為?True?的時候,才把循環的當前元素添加到列表中。
以上是課程內容。
我想問>>>?[x?*?x?for?x?in?range(1,?11)?if?x?%?2?==?0]中?執行順序是先for循環把值給x,然后if判斷是否為偶數,再執行x*x嗎?或者還是別的執行順序。百度了一下沒找到結果。?
3 回答
已采納

小貓過河
TA貢獻26條經驗 獲得超15個贊
嗯,對.
def?func(): ????l?=?[] ????for?x?in?range(1,11): ????????if?x?%?2?==?0: ???????????l.append(x*x) ????return?l ???? print?func() output:[4,?16,?36,?64,?100]
這里是等價的,過程差不多,先for再if,你可以這樣理解.
添加回答
舉報
0/150
提交
取消