是否可以以某种方式在 python 中执行以下操作?
nodename = 'node%s' % (++num if ct[0] != 'J' else num)
或者我是否需要先进行增量并在下一行分配它:
if ct[0] != 'J':
num += 1
nodename = 'node%s' % num
Python 3.8+ 具有walrus 运算符,它允许您分配表达式中的变量。该表达式var := expr
将值分配给expr
to var
,并产生相同的值。
这意味着预增操作符 ++var
可以在Python的模拟var := var + 1
。这会增加var
,结果是 的新增加的值var
。这似乎是您正在寻找的行为。
在具有这些运算符的语言中,后增量运算符 var++
具有不同的行为;它递增var
,但表达式的值var++
是 的旧的、未递增的值var
。从您的代码示例来看,这似乎不是您要寻找的行为,但为了完整性,可以在 Python 中通过(var, var := var + 1)[0]
. 这计算为一个包含旧值的元组var
和var
执行增量后的新值,然后获取该元组的第一个组件(即旧的、未增加的值)。
也就是说,我建议不要使用前者,强烈建议不要使用后者,因为它在 Python 中非常不习惯。如果你想做两个不同的事情(即增加num
和格式化一个字符串),如果你分开做它们更容易阅读和理解。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句