在python中分配计数器时增加计数器

大卫542

是否可以以某种方式在 python 中执行以下操作?

nodename = 'node%s' % (++num if ct[0] != 'J' else num)

或者我是否需要先进行增量并在下一行分配它:

if ct[0] != 'J':
    num += 1
    nodename = 'node%s' % num
卡亚3

Python 3.8+ 具有walrus 运算符,它允许您分配表达式中的变量。该表达式var := expr将值分配给exprto var,并产生相同的值。

这意味着预增操作符 ++var可以在Python的模拟var := var + 1这会增加var,结果是 的新增加的值var这似乎是您正在寻找的行为。

在具有这些运算符的语言中,后增量运算符 var++具有不同的行为;它递增var,但表达式的值var++是 的旧的、未递增的值var从您的代码示例来看,这似乎不是您要寻找的行为,但为了完整性,可以在 Python 中通过(var, var := var + 1)[0]. 这计算为一个包含旧值的元组varvar执行增量后的新值,然后获取该元组的第一个组件(即旧的、未增加的值)。

也就是说,我建议不要使用前者,强烈建议不要使用后者,因为它在 Python 中非常不习惯。如果你想做两个不同的事情(即增加num和格式化一个字符串),如果你分开做它们更容易阅读和理解。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章