非常に単純な行:
i = 3
a = 2 if i in [1, 3, 6] else a = 7
失敗します:
SyntaxError: can't assign to conditional expression
一方、次のように展開されます。
if i in [1, 3, 6]:
a = 2
else:
a = 7
正常に動作します。
間違って使用しています。次のように使用します。
a = 2 if i in [1, 3, 6] else 7
あるべき
a = 2 if i in [1, 3, 6] else 7
次のように読むことができます。
a = (((2 if i in [1, 3, 6] else 7)))
つまり、割り当て記号の右側の式が完全に評価され、結果が左側に割り当てられます。式自体は2つの値です区切られた条件によって。