问题标签 [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.
python - 可以使用海象运算符来避免列表理解中的多个函数调用吗?
假设我有一个这样的列表列表
我想对字符串元素应用一个函数,它返回几个值,我只需要一个子集(每个用例不同)。为了便于说明,我只是做一个简单的split()
操作:
现在,假设我只想要最后两个字母并将它们连接起来;有一个简单的选择
并在列表理解中做同样的事情
两者都给出相同的期望结果
有没有办法在列表理解中使用海象运算符来避免调用dummy
两次?
PS:不用说,实际上这个dummy
函数要复杂得多,所以我没有寻找更好的解决方案,split
但它完全是关于海象运算符的结构和潜在用途。
python - 为什么“if not a := say_empty()”会引发 SyntaxError?
PEP 572引入了赋值运算符(“海象运算符”)。
以下代码有效,并输出empty
我试图否定条件:
这引发了一个SyntaxError
给定的错误很清楚,但是我想知道为什么要设置此限制。
PEP 572 解释了为什么在迭代中使用赋值是有问题的(并且会引发SyntaxError
),但我没有找到任何关于布尔值的信息。
python - 为什么在成员变量上使用海象运算符会引发 SyntaxError?
为什么我不能使用海象运算符:=
来分配属性?它在分配给局部变量时起作用:
但是,如果我尝试分配给对象属性,则会出现语法错误:
我的意思是我可以使用临时局部变量绕过错误,但为什么会发生这种情况?我相信 100% 这是一种合法的语法。
python - Python 海象运算符仅适用于变量名的原因是什么?
有效代码:
无效的代码:
错误:
另一个有用的例子:
上面的片段理想情况下看起来像这样:
"X"
但是,我们必须提前在变量中生成该数组以assert
标记至少三行,因为仍然需要一个变量)。
我知道我给出的最近的例子可能是不好的风格,但是这种小的可能的单行代码在研究代码中相当普遍,通常很适合列表理解的东西必须改为写在 for -loop 由于无法编写此类表达式。
由于解析语言的任何限制,海象运算符的这种限制是否存在?是否决定实施?或者这个功能会出现在python的未来版本中吗?这种限制的原因是什么?
python - 在 if 语句中使用海象运算符不起作用
我有一个简单的函数,它应该根据模式输出前缀,或者None
如果它不匹配。尝试做海象似乎不起作用。任何想法?
追溯
python - 如何使用海象运算符输入提示?
我正在尝试输入提示海象运算符表达式,即
while (var: int := some_func()): ...
我怎样才能做到这一点?
python - 仅当第一个值是真值时,才解包元组并将变量分配给第二个值
我有一个 Python 函数,它返回一个带有布尔值和字符串的元组
有没有办法可以在if
使用布尔值的语句中使用此函数的输出并将字符串值分配给if
语句中的变量
python - 为什么海象运算符在此函数的返回语句中实现时不起作用?
当我想到在 return 语句中实现运算符时,我试图解决这个问题。这是问题:
数字根是一个数字中所有数字的递归和。给定n,取n的位数之和。如果该值超过一位,则继续以这种方式减少,直到产生一位数。输入将是一个非负整数。 例子:
- 16 --> 1 + 6 = 7
- 493193 --> 4 + 9 + 3 + 1 + 9 + 3 = 29 --> 2 + 9 = 11 --> 1 + 1 = 2
- 942 --> 9 + 4 + 2 = 15 --> 1 + 5 = 6
代码:
python - 您可以在 Python 中将加法赋值 ( += ) 运算符与海象运算符 ( := ) 结合起来吗?
这是我现在写的代码:
我想知道是否存在这样的事情:
python - 在 Python 中,海象运算符的运算顺序是什么?
如果有人可以通过在 PEMDAS 中添加 W 来给出答案,那将非常有用。谢谢。