因此下面的代码片段返回 x 的符号:
x = -15 (1, -1)[x < 0]
我很难理解为什么这个语法有效。特别是,你为什么可以在 boolean 值列表后面编写一个元组,并从中获取元组中的一个或另一个值......请有人解释一下这种语法!
最佳答案
这是一种基于 boolean 值进行索引的方法。如下所示,True
和False
评估为1
和0
分别在整数上下文中:
>>> int(True)
1
>>> int(False)
0
此外,(1, -1)
是一个元组,一个可以索引的序列对象:
>>> (314159,271828)[0]
314159
>>> (314159,271828)[1]
271828
结合这两个事实,您应该能够看出:
(1, -1)[x < 0]
会给你1
当x < 0
是假的,-1
当它是真的时。这基本上就是 x
的标志。 .
关于python - 在Python中返回数字符号的奇怪语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43314077/