我正在寻找三元运算符语法来做类似这样的事情
a = [1, 2, 3, 4, 5]
if True:
a[1] += 1
else:
a[2] += 1我试过了
a[1] += 1 if True else a[2] += 1和
True and a[1] += 1 or a[2] += 1两者都抛出错误
SyntaxError: invalid syntax有没有人知道这样做的三进制法?
提前感谢!
发布于 2020-04-24 20:38:28
您必须将此表达式移到索引操作本身中
a[1 if True else 2] += 1由于python中指定的语法,您不能在条件表达式中进行赋值
>>> a = 1 if True else b = 1
SyntaxError: can't assign to conditional expression对于像+=这样的修饰符也是如此。
发布于 2020-04-24 20:40:02
注意,三元运算符并不总是最干净的解决方案
a[ 1 if True else 2 ] +=1附言:我只是注意到我太慢了
发布于 2020-04-24 20:41:18
我认为@CoryKramer的解决方案更优雅,但只是给出另一种方式:
a[1], a[2] = (a[1] + 1, a[2]) if True else (a[1], a[2] + 1)https://stackoverflow.com/questions/61408498
复制相似问题