系列文章目录

一、三元表达式

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

  • 格式:

    条件成立时的操作 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 
    

    下一篇