根据三元条件更新数组的不同元素
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)
我正在寻找三元运算符语法来做类似
的事情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)