[英]How does this:Use backet to achieve if statement in Python?
我看到了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
或1
因为在python中, True means 1
, False means 0
In [35]: True == 1
Out[35]: True
In [36]: False == 0
Out[36]: True
将第二个选项仅用于打高尔夫球。 这些文档确实并没有说太多,但是Python的Zen确实指出“简单胜于复杂”,并且“可读性很重要”。 您应该使用第一个选项。
您还可以使用Python的三元运算符 :
b = a*(2 if a < 0 else 3)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.