python - 在Python中返回数字符号的奇怪语法

标签 python syntax boolean tuples list-comprehension

因此下面的代码片段返回 x 的符号:

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

我很难理解为什么这个语法有效。特别是,你为什么可以在 boolean 值列表后面编写一个元组,并从中获取元组中的一个或另一个值......请有人解释一下这种语法!

最佳答案

这是一种基于 boolean 值进行索引的方法。如下所示,TrueFalse评估为10分别在整数上下文中:

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

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

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

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

(1, -1)[x < 0]

会给你1x < 0是假的,-1当它是真的时。这基本上就是 x 的标志。 .

关于python - 在Python中返回数字符号的奇怪语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43314077/

相关文章:

python - 逐行读取gzip大文件

vba - `Case` 与 VBA 的 `Select` 语句的目的是什么?

java - 这个通用函数的作用是什么?

haskell - Haskell 中匿名函数的真值表

python - Pandas 重采样 : TypeError: Only valid with DatetimeIndex, TimedeltaIndex 或 PeriodIndex,但得到了 'RangeIndex' 的实例

python - "AssertionError: Torch not compiled with CUDA enabled"尽管升级到 CUDA 版本

python - 括号内的 var

json - jackson 反序列化自定义 boolean json 属性

python - 多列上的 Pandas 数据框 boolean 掩码

python - 将 Pandas 中各个字段的小数位数指定为csv