簡體   English   中英

從內聯賦值中的理解生成元組時遇到問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM