>>> x = True
>>> a={ 1:198 if x else 2:198}
File "<stdin>", line 1
a={ 1:198 if x else 2:198}
^
SyntaxError: invalid syntax
即使添加括号也无济于事。
>>> a={ (1:198) if x else (2:198) }
File "<stdin>", line 1
a={ (1:198) if x else (2:198) }
^
SyntaxError: invalid syntax
最佳答案
错误的根源在于,当Python解析输入时,它将像下面这样:
{
# dictionary or set
{ 1:
# dictionary where key is 1
{ 1: 198 if x else 2
# dictionary where key is 1 and the value is either 198 or 2, depending on x
{ 1: 198 if x else 2:
# wat?
这就是为什么尖号表示结肠的原因。它遇到一个冒号,它可能期望:
看来您只是想根据
x
更改键,所以需要将三元表达式放在键位置:{
# dictionary or set
{ 1 if x else 2:
# dictionary where key is either 1 or 2, depending on x
{ 1 if x else 2: 198
# dictionary where key is either 1 or 2, depending on x, and the value is 198
{ 1 if x else 2: 198 }
# OK!
关于python - 此错误的起因,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43615026/