首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法让walrus操作符工作(Python双列表理解)

无法让walrus操作符工作(Python双列表理解)
EN

Stack Overflow用户
提问于 2022-04-22 04:26:01
回答 1查看 144关注 0票数 -2

此列表理解不起作用:

代码语言:javascript
复制
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

这个也不是:

代码语言:javascript
复制
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做两次循环计算?

EN

回答 1

Stack Overflow用户

发布于 2022-04-22 04:55:16

我强烈建议不要使用嵌套列表理解,因为这对许多人来说不是很容易读懂。

相反,也许是这样的:

代码语言:javascript
复制
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))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71963465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档