这个列表推导不起作用:
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))