[野人獻曝] List Comprehensions

看板Python作者 ( )時間19年前 (2005/12/12 10:24), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
[ x for x in range(10) ] 這跟 range(10) 的結果一模一樣,是:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] def f(x): return 3 * x + 1 [ f(x) for x in range(10) ] 可以想像,這樣做的效果就是把 0 .. 9 分別帶入 f(x) 所以得到的結果是:[1, 4, 7, 10, 13, 16, 19, 22, 25, 28] [ f(x) for x in range(10) if x % 2 == 0 ] 和上面類似,但只處理偶數,所以結果是:[1, 7, 13, 19, 25] [ (x, y) for x in range(3) for y in range(3) ] 也可以有數個變數,結果如下: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)] r = 5 [(x, y) for x in range(r + 1) for y in range(r + 1) if x * x + y * y == r * r] 半徑是 5 的圓,在第一象限所通過的格子點,結果是: [(0, 5), (3, 4), (4, 3), (5, 0)] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.216.140
文章代碼(AID): #13dDza8M (Python)
討論串 (同標題文章)
文章代碼(AID): #13dDza8M (Python)