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

    三元表达式

    可以讲if...else...分支变成一行

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

    求两个值的大小

    num1 = 10
    num2 = 20
    res = num1 if num1 > num2 else num2
    print(res)
    >>>20
    
    def max1(num1,num2):
        res = num1 if num1 > num2 else num2
        return res
    res = max1(10,20)
    print(res)
    >>>20
    
    username = input('input your username:')
    new_username = username if username+ ':gay' == 'yyh' else username 
    print(new_username)
    

    列表生成式

    可以一行生成列表

    语法: list = [可迭代对象中取出每一个值,任意值 for 可迭代对象对象中取出的值 in 可迭代对象]

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

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

    使用:

    ​ list = [值 for 可迭代对象中取出的每一个值 in 可迭代对象]

    ​ list = [值 for 可迭代对象中取出的每一个值 in 可迭代对象 if 判断]

    list1 = [line for line in range(1,11)]
    print(list1)
    >>[1,2,3,4,5,6,7,8,9,10]
    
    list2 = ['A' for line in range(1,11)]
    print(list2)
    >>['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A']
    
    

    例:将列表中人名添加后缀_sb

    name_list = ['yyh','xxt','ldh','hys']
    new_name = [name+'_sb' for name in name_list]
    print(new_name)
    >>['yyh_sb', 'xxt_sb', 'ldh_sb', 'hys_sb']
    
    
    #给列表中指定人添加后缀并形成新列表
    new_name = [name+'_sb' for name in name_list if name == 'yyh' or name == 'xxt']
    print(new_name)
    >>['yyh_sb', 'xxt_sb']
    

    生成器表达式(生成式)

    生成生成器

    语法: 与列表生成式相似,只是把[]改成()

    生成一个有10000个值的生成器 通过next取值

    g = (line for line in range(1,10001))
    print(g)
    #<generator object <genexpr> at 0x00000246E871CC50>
    print(next(g))
    >>1
    
    

    列表生成式生成10000个值

    list1 = [line for line in range(1,10001)]
    print(list1)
    >>[1,2,,3,4,5,6,....,10000]
    #会直接输出一个有10000个值的列表
    

    **生成器生成式:在数据量过大时使用

    ​ 优点:节省资源

    ​ 缺点:取值不便

    ​ 列表生成式:在数据量较小时使用

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

    ​ 缺点:浪费资源

  • 相关阅读:
    linux中mysql表名默认区分大小写导致表找不到的问题
    将hive的hql执行结果保存到变量中
    excel导出功能优化
    shell中执行hive命令错误:delimited by end-of-file (wanted `EOF')
    javascript中全局变量的定义
    datagrid中reoload提交时如何批量提交表单中的查询条件
    Linux下查看文件和文件夹大小
    Linux 时间修改--date -s命令
    Unicode字符集,各个语言的区间
    js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
  • 原文地址:https://www.cnblogs.com/littleb/p/11858148.html
Copyright © 2011-2022 走看看