根据三元条件更新数组的不同元素

Updating different elements of an array based on a ternary condition

我正在寻找三元运算符语法来做类似

的事情
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

有人知道执行此操作的三元方法吗?

提前致谢!

您必须将此表达式移动到您的索引操作本身

a[1 if True else 2] += 1

由于python中指定的语法,您不能在条件表达式中进行赋值

>>> a = 1 if True else b = 1
SyntaxError: can't assign to conditional expression

对于像 += 这样的修饰符也是如此。

请注意,三元运算符并不总是最干净的解决方案

a[ 1 if True else 2 ] +=1

Ps: 刚发现我太慢了

我认为@CoryKramer 的解决方案更优雅,但只是提供另一种方式:

a[1], a[2] = (a[1] + 1, a[2]) if True else (a[1], a[2] + 1)