如何计算 Python 元组表达式 print((b,a)[a<b])



下面的python3.x表达式是如何计算的,答案是如何得出的10而不是元组?

元组展示三元运算符

a, b = 10,20 print( (b, a)[a < b] )我试图从不同的来源了解这个表达式是如何计算的,但没有得到任何很好的答案。

a,b=10,20 print( (a, b) [a < b] )评估为 20,我认为应该是 10。 它是如何被评估的?

a < b是一个布尔表达式,因此它被计算为TrueFalse。反过来,TrueFalseint的子类,其值分别为 10

因此,如果a > b(a, b)[a < b]评估为(a, b)[0],如果a < b,则评估为(a, b)[1]

如果a, b = 10, 20(a, b)[a < b]评估为:

(10, 20)[10 < 20]
.
(10, 20)[True]
.
(10, 20)[1]
.
20

最新更新