zoukankan      html  css  js  c++  java
  • 三元表达式、列表生成式、生成器表达式

    三元表达式

    三元表达式就是可以将if...else...分支,变成一行

    语法

    条件成立返回左边的值 if 判断条件 else 不成立返回右边的值

    def max(num1,num2):
        # 条件成立返回左边的值 if 判断条件 else 不成立返回右边的值
        res = num1 if num1>num2 else num2
        return res
    res = max(10,20)
    print(res)
    

    列表生成式

    列表生成式就是可以一行实现生成列表

    语法

    [取出的每一个任意值添加到当前列表中 for 可迭代对象中取出每一个值 in 可迭代对象]

    # 取出的每一个任意值添加到当前列表中 for 可迭代对象中取出每一个值 in 可迭代对象
    list1 = [line for line in range(1,101)]		# 生成一个列表,里边是1-100
    print(list1)
    

    for的右边是循环次数,可以取出可迭代对象中的每一个值

    for的左边可以为当前列表添加值

    list1 = ['sean','tank','egon','alex']
    # 为list1中的每个name后加上'_DSB'并过滤掉alex
    new_list = [name + '_DSB' for name in list1 if not  name == 'alex']
    print(new_list)
    

    生成器表达式(生成器生成式)

    ——列表生成式

    [line for line in rang(1,6)]--->[1, 2, 3, 4, 5]
    

    ——生成器生成式

    ()--->返回生成器

    g = (line for line in range(1,6))--->g生成器(1, 2, 3, 4, 5)
    

    列表生成器(当数据量比较小时采用)

    优点:可以依赖索引取值,取值方便

    缺点:浪费资源

    生成器生成式(当数据量较大时采用)

    优点:节省资源

    缺点:取值不方便

    # 生成一个有1000个值的生成器
    g = (line for line in range(1, 1000001))
    print(g)
    # <generator object <genexpr> at 0x00000203262318E0>
    
  • 相关阅读:
    PowerBuilder 前景(转贴)
    利用Lucene.net搭建站内搜索(3)创建索引
    执行力差的五大原因
    js关于document和window对象_javascript教程
    HTML内部链接
    深入理解 __doPostBack (转帖)
    利用Lucene.net搭建站内搜索(4)数据检索
    a href=#与 a href=javascript:void(0) 的区别 打开新窗口链接的几种办法
    Javascript进阶 (转帖)
    windows通过VNC连接linux (Fedora 12)
  • 原文地址:https://www.cnblogs.com/aheng/p/11858922.html
Copyright © 2011-2022 走看看