• 六. python推导式


    一 .推导式 表达式

    1.列表推导式

    # 列表推到式
    egg=['鸡蛋%s'%i for i in range(10)] # 列表推导式
    print(egg)
    
    aa=[i for i in range(10)]
    print(aa)
    
    bb=[i*2 for i in range(10)]
    print(bb)
    
    eggl=[]
    for i in range(10):
        eggl.append("鸡蛋%s"%i)
    print(eggl)

     2.生成器表达式

    # 生成器表达式
    g=(i for i in range(10))
    print(g)      #  打印结果是一个生成器 generator
    # 生成器表达式和列表推导式
    #    不同点:括号不一样 返回值不一样  几乎不占内存
    f=("鸡蛋%s"%i  for i in range(10))
    print(f)
    for i in f:
     print(i)

    3. 三元运算符



    # 三元运算符
    cc=22 if 22>21 else 21
    print(cc)
    4.字典推导式
     # 字典推导式
    aa={'a':1,'b':2}
    dic = {v: k for k, v in aa.items()}
    print(dic)
    5.set集合推导式  集合要去重
    # set集合推导式  集合要去重
    j = {x*2 for x in [1, 1, 2,2]}
    print(j)
    6.各种推导式
    # 各种推导式
    aa=[i for i in range(30) if i%3==0]
    print(aa)
    
    
    aa=[i*i for i in range(30) if i%3==0]    #  完整的列表推导式
    print(aa)
    
    
    name=[["aa","bb","cc"],["1","2","3"]]
    
    for i in name:
       for a in i:
           print(a)
    
    

     推导式案例

    """
    # 过滤掉长度小于3的字符串 并将剩下转换成大写字母
    ll=["name BB","lover_ll","nice_DDD","bbb","aa"]
    aa=[ name.upper() for name in  ll if len(name)>3]
    print(aa)
    """
    
    # 求(x,y)其中x是0-5之间的偶数 y是0-5之间奇数组成元祖列表
    lst=[(i,n) for i in range(5)  for n in range(5) if i%2==0 and  n%2==1]
    print(lst)
    # [(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]
    
    # 从 m=[[1,2,3],[4,5,6],[7,8,9]] 提取 3 6 9
    m=[[1,2,3],[4,5,6],[7,8,9]]
    for i in m:
        print(i[2])
    aa =[ i[2] for i in m]
    print(aa)
    
    print([[i-0,i-1,i-2]for i in [3,6,9]])
    # [[3, 2, 1], [6, 5, 4], [9, 8, 7]]
    
    
    # 找出求50 以内能被三整除的数求平方
    bb=[ i**2 for i in range(10) if i%3==0]
    print(bb)
    # [0, 9, 36, 81]
    
    
    # 构造成[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]
    cc= [(i,i+1) for i in range(5)]
    print(cc)
    [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]
    
    
    dd=[ i for i in range(20) if i%2==0]
    print(dd)
    # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
    
    
    li=["张三","李四","王五"]
    print( [el+str(index) for index ,el in enumerate(li)])
    # '张三0', '李四1', '王五2']
    
    print([ li[i]+str(i)  for i in range(len(li))])
    # ['张三0', '李四1', '王五2']


     
    
    
    
  • 相关阅读:
    paraview将csv格式显示为云图
    Valgrind安装与使用
    vscode+WSL+Debug+Cmake+OpenGL
    MFiX中DEM颗粒信息随时间变化
    origin添加两个Y轴
    conda回滚
    onedrive同步其他任意文件夹
    MFiX-DEM中的并行碰撞搜索
    MFiX-DEM中的串行碰撞搜索
    【Go】四舍五入在go语言中为何如此困难
  • 原文地址:https://www.cnblogs.com/Sup-to/p/10851835.html
Copyright © 2020-2023  润新知