[英]Trouble generating a Tuple from comprehension in inline assignment
返回元組時,我無法將 lambda 表達式的返回值分配給對象 - 但它在返回列表時有效。
這是完美的工作:
roots = lambda a,b,c: [(-b + i * sqrt(b**2 - 4*a*c))/(2*a) for i in (-1,1)]
這不像我期望的那樣工作:
roots = lambda a,b,c: ((-b + i * sqrt(b**2 - 4*a*c))/(2*a) for i in (-1,1))
您已經編寫了一個生成器表達式。 如果你想返回元組,你可以像這樣將生成器表達式傳遞給tuple
:
roots = lambda a,b,c: tuple((-b + i * sqrt(b**2 - 4*a*c))/(2*a) for i in (-1,1))
沒有稱為元組理解的概念。 它被稱為生成器。 上面的代碼調用生成器。 因此你無法得到你想要的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.