Skip to main content
 首页 » 编程设计

python之如何在列表理解中定义变量

2025年05月04日26grandyang

<分区>

在 Haskell 中,我可以做到

Prelude> [(y*3, y+4) | x<-[0..5], let y=x^2] 
[(0,4),(3,5),(12,8),(27,13),(48,20),(75,29)] 

Python 中的等价物是什么,无需重复幂运算,正如我需要的那样

>>> [((x**2)*3, (x**2)+4) for x in range(5)] 
[(0, 4), (3, 5), (12, 8), (27, 13), (48, 20)] 

我当然可以用 lambda 模拟 Haskell 代码,但这感觉不太像 Pythonic...

>>> [(lambda y: (y*3, y+4))(x**2) for x in range(5)]