在蟒蛇

在蟒蛇

问题描述:

返回数值的符号奇怪的语法那么的代码下面的代码片段返回x的符号:在蟒蛇

x = -15 
(1, -1)[x < 0] 

我很难理解为什么这句法的作品。特别是,你怎么可以写出一个元组后面的布尔值列表,并从中得到元组中的一个或另一个值......有人请解释这个语法!

+0

没关系---我现在明白了。我们使用逻辑语句的结果将元组索引到元组中。 – ireinventcodebicycles

这是一种基于布尔值做索引的方法。如下面看到的那样,TrueFalse以整数的情况下分别计算为10

>>> int(True) 
1 
>>> int(False) 
0 

此外,(1, -1)是一个元组,可被索引的序列对象:

>>> (314159,271828)[0] 
314159 
>>> (314159,271828)[1] 
271828 

结合这两个事实,你应该能够看出:

(1, -1)[x < 0] 

会给y ou 1x < 0为假,-1为真。这基本上是x的标志。

+0

只需要4个月的时间来回答这个显而易见的基本问题;) – DeepSpace