if-else后置
if-else的后置類似於C++的三目運算符:
int a = 1;
int b = 2;
int c = a>b?a:b; // 取得a,b中的較大值保存在c中
int d = a>b?(a>c?a:c):(b>c?b:c); // 嵌套寫法,有較多冗余
python:
a = 1
b = 2
c = a if a > b else b # if中條件滿足則返回a,否則返回b
d = a if a > b else b if b > c else c # 嵌套寫法,類似自然語言,可讀性強
for后置
用於產生一個generator,包含符合for條件的所有元素:
# python版本:3.6
a = list(str(x) for x in range(4))
print(a)
# ['0', '1', '2', '3']
相當於如下寫法:
def fun(a, n):
x = a
while x < n:
yield str(x)
x = x + 1
a = list(fun(0, 4))
print(a)
# ['0', '1', '2', '3']
