问题标签 [walrus-operator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
42 浏览

python - 从由字符串组成的对列表中构建字典

假设我们有一个字符串

我要字典

这是实现这一目标的一种方法:

这个使用生成器好一点

有没有更优雅的方式?我尝试这样做以利用新的海象运算符,但它看起来并没有更好:

编辑:我正在寻找单程的东西,而不是创建临时列表,甚至每个项目都没有创建一个或多个临时元组。只是dict直接构建......会有这些方面的东西吗?

0 投票
1 回答
253 浏览

python - 赋值表达式的求值顺序(海象运算符)

我有以下表达式:

现在,a == 2手术后,正如预期的那样。结果就是我想要的,即a在分配之前与分配的 RHS 进行比较。

反转相等运算符的顺序会反转结果:

在PEP-572, relative priority section中似乎没有任何与此极端情况直接相关的内容。下一节,对评估顺序的更改提到评估顺序是从左到右的。这就是这里发生的事情吗(存储 的值a,更新它,比较 vs 更新a,然后比较它的新值)?

这种行为在哪里定义,它的可靠性如何?

0 投票
0 回答
122 浏览

python - Python解释器中的海象运算符

当我在 Python(3.9.6) 解释器中使用如下海象运算符时,

我收到语法错误:

这与以下有何不同?

0 投票
1 回答
149 浏览

python - Python 3.8 海象运算符,不指定多个变量

我正在研究硒包装器。我想检查网页上的元素是否可见。该函数获取selector遵循模式的输入变量,"selector=value"例如"id=content",但也可能是 this "link_text=Hello World"。搜索函数将该字符串分成两部分以搜索实际元素并将其返回以用于错误处理。异常消息应同时说明选择器和值:

执行时虽然我收到以下错误:

我可以将分离过程移动到它自己的函数中,然后在异常和搜索函数中调用它,但我真的不想这样做,因为这意味着我要执行相同的代码两次。

0 投票
2 回答
554 浏览

python - dict理解中的海象运算符

我想避免在字典理解中对平均值进行双重评估,我尝试使用海象运算符:

但这给了我以下错误:

此错误仅在我尝试使用该变量时发生,定义它时没有问题:

为什么?我哪里弄错了?

0 投票
1 回答
126 浏览

python - 为什么海象行动不是一个有效的陈述?

我在终端中做了一些 python,在我写的时候x := 1,它显示了一个语法错误。

我知道海象运算符是一个表达式,但其他表达式工作得很好。

甚至海象运算也在括号内工作。

所以我的问题是,为什么其他所有表达式都可以作为陈述有效,但海象却不是?

0 投票
1 回答
32 浏览

python - yield with walrus operator := 导致语法错误

旨在创建一个新的 Excel 应用程序并每次调用其退出方法。我认为它可以用海象运算符写得更简洁,但我明白了SyntaxError: invalid syntax

0 投票
2 回答
112 浏览

python - 海象运算符不分配变量?

玩海象运算符,我有这个合并排序的实现:

但这会返回错误UnboundLocalError: local variable 'r' referenced before assignment

为什么不r包含在我的 for 循环中,whilel是?

0 投票
1 回答
28 浏览

python - 如何在 if 语句中正确使用赋值运算符和 mod 运算符?

我正在尝试在 python 中使用具有不同 if 语句的海象运算符,并且我尝试替换的代码如下所示:

预期的输出应该是这样的:

现在,如果尝试用海象运算符(概念)替换我的代码,如果我尝试以下操作,它确实会给我结果中的 True 或 0:

输出:

或者:

输出:

现在我知道我在 if 语句中的逻辑是错误的,如果我没有使用理解,这可能会按预期工作,但有什么办法可以让它像这样工作吗?

0 投票
3 回答
98 浏览

python - 这个循环可以在列表理解中完成吗?

来自这个问题 将数组的最后一个位置添加到同一个数组

我很好奇上述循环是否可以在列表理解中完成?

我想也许是海象接线员。

我的尝试给了我一个错误,导致无法使用赋值表达式和下标

有任何想法吗?