【Python】if-else和for的后置用法

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']
posted @ 2021-05-30 11:36  woodenhead  阅读(2784)  评论(0编辑  收藏  举报