带有嵌套三元运算符的字符串连接将忽略字符串

时间:2018-10-10 13:10:45

标签: python python-3.x

我发现以下两个语句之间存在差异。

message = "a is " + "greater than" if a > 10 else "less than" if a <10 else "equal to" + " 10"

message = "a is " + ("greater than" if a > 10 else ("less than" if a <10 else "equal to")) + " 10"

有人可以解释这里发生的事情

1 个答案:

答案 0 :(得分:5)

第一个解释为:

b = np.array([" "*100 for i in range(3)])
b[a>2] = "red"
b[a<3] = "blue"

请参见docs:“条件表达式在所有Python操作中的优先级都最低。”

这就是为什么您可以选择用括号将表达式的各个部分分组。