我看到了Python的这种用法,很干净,但是我不是很了解这种用法,也无法搜索任何有用的解释。
这是正常的方法:
if a < 0: b = 2 * a else: b = 3 * a
这实现了相同的目的:
b = a * (3,2) [a<0]
有人可以告诉我 官方文档在哪里对上述内容进行了说明吗?
我看到了Python的这种用法,很干净,但是我不是很了解这种用法,也无法搜索任何有用的解释。
这是正常的方法:
if a < 0:
b = 2 * a
else:
b = 3 * a
这实现了相同的目的:
b = a * (3,2) [a<0]
有人可以告诉我 官方文档在哪里对上述内容进行了说明吗?
b = a * (3,2) [a<0]
a<0
是一个返回的条件,true or false
即1/0
(3,2)
是一个带有3
和2
作为元素的元组
如果条件是true
语句将在索引处索引元素,1
否则它将索引到元素0
喜欢
In [33]: (3,2)[0]
Out[33]: 3
In [34]: (3,2)[1]
Out[34]: 2
条件导致0
or1
因为在 pythonTrue means 1
和False means 0
In [35]: True == 1
Out[35]: True
In [36]: False == 0
Out[36]: True
仅将第二个选项用于打高尔夫球的目的。文档对这种语法确实没有多说,但Python 之禅确实声明“简单胜于复杂”,并且“可读性很重要”。您应该使用第一个选项。
您还可以使用 Python 的三元运算符:
b = a*(2 if a < 0 else 3)