首页 > 其他 > 详细

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

时间:2021-08-11 18:59:05      阅读:20      评论:0      收藏:0      [点我收藏+]

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


一、三元表达式

三元表达式是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)

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

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

原文:https://www.cnblogs.com/98ft/p/15128667.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!