L = [ x**2 for (x,y) in zip(xl,yl) if y > 10] 這個表達式看不懂啊。。。
xl?=?[1,3,5] yl?=?[9,12,13] L??=?[?x**2?for?(x,y)?in?zip(xl,yl)?if?y?>?10]
輸出是[9,25]
zip是將兩個元組的變量提取出來,if是指y>10成立才放進zip中,
這樣理解有問題嗎?
查了很多說明,還是不懂啊。。
xl?=?[1,3,5] yl?=?[9,12,13] L??=?[?x**2?for?(x,y)?in?zip(xl,yl)?if?y?>?10]
輸出是[9,25]
zip是將兩個元組的變量提取出來,if是指y>10成立才放進zip中,
這樣理解有問題嗎?
查了很多說明,還是不懂啊。。
2016-11-08
舉報
2016-11-08
zip(xl,yl)的結果為[(1,9),(3,12),(5,13)],
for循環遍歷zip(xl,yl)的結果,并賦給(x,y),
每一次迭代都進行if判斷,當y>10時,把x**2的結果記錄到L[]中。
所以,y>10的有(3,12)和(5,13),取出其中的x值3和5,求平方后放入L[],就得到[9,25]