它基本上說B = [y | sqrt(y) in X]
,但是當我用Python寫它時,我得到一個錯誤。我試過了:你怎麼這樣快速寫一套?
b_set = set([y for y**0.5 in x_set])
b_set = set([y for math.sqrt(y) in x_set])
都不行。
它基本上說B = [y | sqrt(y) in X]
,但是當我用Python寫它時,我得到一個錯誤。我試過了:你怎麼這樣快速寫一套?
b_set = set([y for y**0.5 in x_set])
b_set = set([y for math.sqrt(y) in x_set])
都不行。
理解語法應該看起來像expression for identifier in collection
。您好像已經換了expression
和identifier
的職位。
import math
x_set = [1,4,9,16]
b = {math.sqrt(y) for y in x_set}
print b
結果:
set([1.0, 2.0, 3.0, 4.0])
......哪裏 「它」 說? – Roberto 2015-02-05 20:05:16
你會得到什麼錯誤?你是不是指'set([x_set中的y ** 0.5])?見例如https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions – jonrsharpe 2015-02-05 20:06:10
您可能想要下面的答案,但似乎與您嘗試的內容和您說的內容不符。 '{y | X中的sqrt(y)}實際上被讀作「其平方根在'X'中的一組數字」。所以你可能需要'{a ** 2 for a in X}'。 – 2015-02-05 20:13:44