x=range(1,4)
y=range(1,4)
[(xi,yi) for xi in x for yi in y if xi is yi]
#output
# [(1, 1), (2, 2), (3, 3)]
[(xi,yi) for xi in x if xi is yi for yi in y ]
#output, I am confused about this one
#[(3, 1), (3, 2), (3, 3)]
任何人都可以解釋爲什麼第二個循環的結果是這樣嗎?如何解釋這個循環導致python?
我對Python中多個內聯循環是如何工作感到困惑。
另外,在線路迴路是有利的有關python任何教程
當你達到複雜程度時,我可能不會使用列表comp。常規循環可能更具可讀性。另外,你不應該像這樣使用'is'。 'is'檢查對象是否相等,而不是值相等。 – Daenyth
這是一個很好的觀點。 – xiaohan2012
請勿使用'is'來比較數字。使用'=='。 –