为什么这个简单的条件表达式不起作用?

Gab*_*iel 24 python conditional

非常简单的线条:

i = 3
a = 2 if i in [1, 3, 6] else a = 7
Run Code Online (Sandbox Code Playgroud)

失败了:

SyntaxError: can't assign to conditional expression
Run Code Online (Sandbox Code Playgroud)

而扩展为:

if i in [1, 3, 6]:
    a = 2
else:
    a = 7
Run Code Online (Sandbox Code Playgroud)

工作良好.

Ale*_*lev 39

你错了.用这种方式:

a = 2 if i in [1, 3, 6] else 7
Run Code Online (Sandbox Code Playgroud)


Lar*_*tig 8

应该

 a = 2 if i in [1, 3, 6] else 7
Run Code Online (Sandbox Code Playgroud)

您可以将其读作:

 a = (((2 if i in [1, 3, 6] else 7)))
Run Code Online (Sandbox Code Playgroud)

也就是说,完全评估分配符号右侧的表达式,然后将结果分配给左侧.表达式本身是由条件分隔的两个值.