看板 Python 關於我們 聯絡資訊
test=( (x, y) for x in range ( 3 ) for y in range (x) ) for x,y in test: print(x,y) output: 1 0 2 0 2 1 不好意思 看了很久想不出來程式碼第一行跟結果的關係QQ 這種用法是什麼意思呢? 想問 1. (x,y)是否代表 輸出的iterator 1個element是 (x,y) 2.迴圈看不太懂意思 前面的for x 是否是後面y range的x -- Sent from my Windows -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.82.77.154 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1467410007.A.1B9.html
Neverfor: element 打錯@@07/02 05:54
mars90226: 這是list comprehension,用來產生list07/02 07:50
mars90226: 1.對 2.錯,是for y中的x是前面的x07/02 07:52
※ 編輯: Neverfor (111.82.77.154), 07/02/2016 21:55:01
adgjl5645: 這邊用的是小掛號,應該是產生generator而不是list07/02 22:28
大致上瞭解了!!感謝!! 不過還有個問題.. range(0)跟range(0,0)都是空集合嗎? ※ 編輯: Neverfor (111.82.77.154), 07/03/2016 03:42:27
uranusjr: range(0) == range(0, 0), 但是空 list 不是集合 (set) 07/03 09:47
uranusjr: 另外在 Python 3 它們也會是 generator 07/03 09:48
adgjl5645: 在 python2 裡的話 range 是 list, xrange 是generator 07/04 03:07
adgjl5645: range(0) 跟 range(0,0) 會是一樣的 07/04 03:09