三元表达式、生成式、生成器表达式

三元表达式、生成式、生成器表达式


一、三元表达式

三元表达式是python为我们提供的一种简化代码的解决方案,语法如下

res = 条件成立时返回的值 if 条件 else 条件不成立时返回的值

def max(x, y):
    if x > y:
        return x
    else:
        return y
    
res = max(1, 2)

# 用三元表达式一行解决
x = 1
y = 2
res = x if x > y else y

二、生成式

1、列表生成式
l = []
for i in range(1,6):
    if i < 6:
        l.append(i)
        
l = [i for i in range(1,6)]
l = [i**2 for i in range (1,6)]
l = [i for i in range (1,6) if i > 3]
2、字典生成式
res ={k:v for k,v in [(‘name‘,‘tom‘),(‘age‘,18)]}
print(res)
>>>{‘name‘: ‘tom‘, ‘age‘: 18}
3、集合生成式
res = {i for i in range(5)}  
print(res)                   
>>>{0,1,2,3,4}

三、生成器表达式

创建一个生成器对象有两种方式,一种是调用带yield关键字的函数,另一种就是生成器表达式,与列表生成式的语法格式相同,只需要把[ ]换成( )

(expression for item in iterable if conditio)
# 生成器表达式
g = (i for i in range(10) if i > 3)
# 此时g内部没有值,只是一些代码
print(type(g))
>>><class ‘generator‘>

统计文件中字符个数

with open(‘文件.txt‘,mode=‘rt‘,encoding=‘utf-8‘)as f:
    # plan 1
    # res = 0
    # for line in f:
    #     res +=len(line)
    #     print(res)

    # plan2
    # res = sum([len(line) for line in f])
    # print(res)

    # plan3
    res = sum(len(line) for line in f)
    print(res)

//非原创,仅供学习交流//

三元表达式、生成式、生成器表达式

上一篇:redis相关配置


下一篇:Python3入门基础:第九篇(字典)