无法让海象运算符工作(Python 双列表理解)



这个列表推导不起作用:

buy_prices = [(buylow := round(0.997 + ii/10000.0, 5), max(jj, buylow)) for jj in [buylow, 0.9982] for ii in range(21)]

NameError: name 'buylow' is not defined

这个也没有

buy_prices = [(buylow, max(jj, buylow)) for jj in [buylow := round(0.997 + ii/10000.0, 5), 0.9982] for ii in range(21)]

SyntaxError: assignment expression cannot be used in a comprehension iterable expression

我该怎么做?或者我只需要对buylow做两次四舍五入的计算?

我强烈建议不要使用嵌套的列表推导式,因为这对很多人来说不是很好读。

可以这样写:

buy_prices = list()
for ii in range(21):
buylow = round(.997 + ii / 10000, 5)
for jj in (buylow, .9982):
buy_prices.append((buylow, max(jj, buylow))

最新更新