条件表达式
python支持条件表达式的语法,可以取代一个简单的控制结构。一般语法表达式的语法如下:
expr1 if condition else expr2
对于这种复合表达式,如果条件为真,则计算expr1;否则,计算expr2。这相当于Java或C++中的语法:condition ? expr1 : expr2
比如我们不依赖内置函数abs
来获得一个数的绝对值,我们可以这样写:
result = n if n >= 0 else -n
解析语法
python提供了一种精炼的写法,可以根据一份列表来制作另外一份。这种表达式称为list comprehension
(列表推导)。语法:
[expression for value in iterable if condition]
示例,返回一10 内偶数的平方列表:
lis = [i**2 for i in range(11) if i%2 == 0]
除了有列表推导式,还有集合、字典和生成器推导式,比如我们计算数字的平方:
[k*k for k in range(1,n+1)] #列表解析
{k*k for k in range(1,n+1)} #集合解析
(k*k for k in range(1,n+1)) #生成器解析
{k:k*k for k in range(1,n+1)} #字典解析