• 三元表达式,列表生成式,字典生成式,生成器表达式


    三元表达式

    条件成立时的返回值 if 条件 else 条件不成立时的返回值

    def max2(x,y):
        if x > y:
            return x
        else:
            return y
    print(max2(10,20))

    x
    =10 y=20 res=x if x > y else y print(res)

    列表生成式

    #输出1~10中每个数字的平方
    l=[item**2 for item in range(1,11)] print(l)
    names=['alex','wxx','lxx']
    为列表中每个人名加上SB
    l=[]
    for name in names:
        l.append(name + 'SB')
    names=l
    print(l)
    列表生成式写法 names
    =[name+'SB' for name in names] print(names)
    names=['alex','wxx','egon','lxx','zhangmingyan']
    为列表中除了egon外的每个人名加上SB l
    =[] for name in names: if name != 'egon': l.append(name + 'SB') names=l

    列表生成式写法 names
    =[name+'SB' for name in names if name != 'egon'] print(names)
    把所有元素大写
    names=['egon','alex_sb','wupeiqi','yuanhao'] names=[name.upper() for name in names] print(names)

    把不以sb结尾的元素的长度以列表输出 names
    =['egon','alex_sb','wupeiqi','yuanhao'] nums=[len(name) for name in names if not name.endswith('sb')] print(nums)

     

    字典生成式


    s1='hello' l1=[1,2,3,4,5] res=zip(s1,l1) print(res)     #输出的是内存地址 print(list(res))    #打印结果:[('h', 1), ('e', 2), ('l', 3), ('l', 4), ('o', 5)]
    keys=['name','age','sex']
    values=['egon',18,'male']
    
    res=zip(keys,values)
    print(list(res))       #[('name', 'egon'), ('age', 18), ('sex', 'male')]
    print(list(res))
    d={}
    for k,v in zip(keys,values):
        d[k]=v
    print(d)            #{'name': 'egon', 'age': 18, 'sex': 'male'}
    字典生成器写法
    keys=['name','age','sex']
    values=['egon',18,'male']
    d={k:v for k,v in zip(keys,values)}
    print(d)      #{'name': 'egon', 'age': 18, 'sex': 'male'}
    info={'name': 'egon', 'age': 18, 'sex': 'male'}
    
    keys=info.keys()
    # print(keys)
    iter_keys=keys.__iter__()
    values=info.values()
    # print(values)
    
    d={k:v for k,v in zip(keys,values)}
    print(d)

    生成器表达式

    with open('a.txt',encoding='utf-8') as f:
        nums=(len(line) for line in f)
        print(max(nums))      #统计a.txt中最长一行的长度
    l=['egg%s' %i for i in range(100)]
    print(l)        #输出'egg0'到'egg99'
    g=('egg%s' %i for i in range(1000000000000))
    # print(g)
    print(next(g))
    print(next(g))          #next一个出一个
  • 相关阅读:
    Ajax学习总结
    从零开始学Docker
    IBM Websphere MQ常用命令及常见错误
    Log4j学习总结
    Eclipse中各图标含义
    类加载机制与反射
    Feign【入门】
    Eureka【故障演练分析】
    Eureka【启用https】
    Eureka【开启http basic权限认证】
  • 原文地址:https://www.cnblogs.com/chillwave/p/9180544.html
Copyright © 2020-2023  润新知