zoukankan      html  css  js  c++  java
  • Python:三元表达式、列表推导式和生成器表达式

    blog:https://www.cnblogs.com/Rohn/

    三元表达式

    语法格式

    如下:

    为真时的结果 if 判断条件 else 为假时的结果
    

    例子

    name = input('姓名>>: ')
    res = '请进' if name == '张三' else '再见'
    print(res)
    

    结果如下

    姓名>>: 张三
    请进
    姓名>>: 李四
    再见
    

    列表推导式

    列表推导式用于使用其他列表创建一个新列表。

    语法格式

    如下:

    # 格式1
    [表达式 for 变量 in 列表]  
    
    # 格式2,对列表进行判断帅选
    [表达式 for 变量 in 列表 if 条件]
    

    例1

    # 求1-9的平方组成的列表
    l = [x**2 for x in range(1, 10)]
    print(l)
    

    结果如下:

    [1, 4, 9, 16, 25, 36, 49, 64, 81]
    

    例2

    # 求1-9中偶数的平方组成的列表
    l = [x**2 for x in range(1, 10) if x % 2 == 0]
    print(l)
    

    结果如下:

    [4, 16, 36, 64]
    

    生成器表达式

    把列表推导式的[]换成()就是生成器表达式,返回对象不是一个列表,而是一个生成器。

    优点:省内存,一次只产生一个值在内存中。

    语法格式

    如下:

    # 格式1
    (表达式 for 变量 in 列表) 
    
    # 格式2,对列表进行判断筛选
    (表达式 for 变量 in 列表 if 条件)
    

    例子

    >>> l = (x**2 for x in range(1, 10) if x % 2 == 0)
    >>> next(l)
    4
    >>> next(l)
    16
    >>> next(l)
    36
    >>> next(l)
    64
    >>> next(l)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    StopIteration
    
  • 相关阅读:
    HTML5中drag和drop使用
    E
    D
    杜教BM(解决线性递推式的模板)
    Myeclipse下载安装破解详细版
    D
    IDEA-连接MySQL连不上
    E
    C
    D. Ball(树状数组三维排序,求是否存在三个值都比自己大的人)
  • 原文地址:https://www.cnblogs.com/Rohn/p/13037594.html
Copyright © 2011-2022 走看看