python3-三元表达式、列表生成式和其他生成式

系列文章目录

一、三元表达式

三元表达式是编程语言中的一种语法,可以使一些逻辑简单的代码写起来更加简短

  • 格式:

    条件成立时的操作 if 判断条件 else 不成立时的操作
    
  • 举例:

    比如,比较两个数的大小,并返回二者中更大的值:

    x, y = 5, 3
    
    res = x if x > y else y
    
    print(res)  # 打印:5
    

二、列表生成式

列表生成式可以帮助我们用很简短的代码,创建出一个列表。

  • 格式:

    变量 = [有返回值的表达式 for 元素 in 容器类型的数据]
    

    也可以和if合用,进行条件判断:

    变量 = [有返回值的表达式(条件成立时) for 元素 in 容器类型 if 条件判断]
    
  • 举例:

    从列表中取出偶数元素,组成一个新列表:

    l = [1, 2, 3, 4, 5, 6, 7, 8]
     
    new_l = [i for i in l if i%2==0]
    
    print(new_l)  # 打印:[2, 4, 6, 8]
    

三、其他生成式:

生成式的语法也可以用在其他容器类型上,形成其他的生成式。

  • 集合表达式:

    l = [1, 2, 3, 4, 5, 6, 7, 8]
     
    new_l = {i for i in l if i%2==0}  # 注意外层括号修改为集合类型的花括号
    
    print(new_l)  # 打印:{8, 2, 4, 6},集合无序
    
  • 字典生成式:
    只有key的情况:

    l = ['name', 'gender', 'age']
    new_d = {k:None for k in l if k != 'age' }  # 注意外层括号修改为字典类型的花括号
    print(new_d)  # 打印:{'name': None, 'gender': None}
    

    key和value都有的情况:

    l = [('name', 'hugh'), ('gender', 'male'), ('age', 18)]  # 要满足类型转换的条件
    new_d = {k:v for k,v in l if k != 'name' }  # for后面要有两个变量来接收取出的值
    print(new_d)  # 打印:{'gender': 'male', 'age': 18}
    
  • 生成器生成式:

    没有元组表达式!!!使用圆括号产生的是一个生成器。

    l = [1, 2, 3, 4, 5, 6, 7, 8] 
    
    new_l = (i for i in l if i%2==0) # 注意外层括号的修改
    
    print(type(new_l))  # 打印:<class 'generator'>
    print(next(new_l))  # 打印:2  
    

    下一篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花_城

你的鼓励就是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值