【问题标题】:Python Implicit if statement with variable assignment -- How does this work? [duplicate]带有变量赋值的 Python 隐式 if 语句——这是如何工作的? [复制]
【发布时间】:2023-04-02 05:08:01
【问题描述】:

我在上个月开始学习 python。我最近遇到了一个代码示例,其中代码中的计数器根据条件递增。作者的做法是:

x = 0
x += [-1, 1][a == b]

从测试来看,这与您使用if a==b: increment, else: decrement 的效果相同。
我在 python 文档中查看的其他任何地方都找不到这种语法。它看起来非常强大,允许各种条件赋值并有助于简洁。

我不应该使用这个结构有什么原因吗?这个结构在做什么?

【问题讨论】:

  • a==b will be 1 or 0 所以[-1, 1]的索引0或索引1
  • 我想指出的是,不建议在您的代码中使用它,因为它会使其他人更难阅读,甚至将来可能对您而言也是如此。
  • 这不是很pythonic,请改用1 if a==b else -1

标签:
python
if-statement
syntax
conditional