zoukankan      html  css  js  c++  java
  • 列表生成器

    列表生成器

    # # egg_list=[]
    #
    # # for i in range(50):
    # #     egg_list.append("egg%s" %i)
    # #
    # # print(egg_list)
    #
    # #
    要输出跟上面一样的结果,可以:
    # l=['egg%s' %i for i in range(100)]
    # print(l)
    #
    # # 上面跟三元表达式很像
    # name="jensen1"
    # res="SB" if name=="jensen" else "wefewf"
    # print(res)
    #
    # # i要大于50才执行
    # l=['egg%s' %i for i in range(100) if i>50]
    # print(l)
    #
    # aa=[1,2,3,4]
    # s='hello'
    #
    # l=[(num,s1) for num in aa for s1 in s]
    # print(l)
    #
    # # 上面等同于
    # l=[]
    # for num in aa:
    #     for s1 in s:
    #         t=(num,s1)
    #         l.append(t)
    #
    # print(l)
    #
    # # 当大于2时才执行之后的:
    # l=[(num,s1) for num in aa if num>2 for s1 in s]
    # print(l)

    import os
    g=os.walk('c:\egon')
    file_path=[]
    for i in g:
        for j in i[-1]:
            ab='%s\%s' %(i[0],j)
            file_path.append(ab)

    print(file_path)

    g=os.walk('c:\egon')
    g=['%s\%s' %(i[0],j)  for i in g for j in i[-1]]
    print(g)

    # 100只蛋放在列表很占内存,所以把中括号变小括号,于是变生成器
    # l=['egg%s' %i for i in range(100)]
    # print(l)
    #

    # l=('egg%s' %i for i in range(100))
    # print(l)
    # print(next(l))
    # 优点:省内存
    #
    # a=0
    # aa=[]
    # with open(r'C:UsersuserPycharmProjectspy_fullstack_s420180407c.txt','r') as f:
    #     for line in f:
    #         line=line.strip() #去空格回车
    #         aa.append(line)
    #
    # print(aa)
    #
    # # 如果文件内容太多,上面的程序就不行了
    # f=open('c.txt')
    # f.seek(0)
    # bb=[line.strip()  for line in f]
    # print(bb)
    #
    # f.seek(0)
    # bb=(line.strip()  for line in f)
    # print(bb)
    # print(next(bb))
    # l=list(bb)
    # print(l)

    # 生成器表达式
    # bb.txt
    # apple 10 3
    # tesla 100000 1
    # mac 3000 2
    # lenovo 30000 3
    # chicken 10 3

    # print(sum([1,2,3,4]))
    #
    # nums=(i for i in range(5))
    # print(sum(nums))

    # money=[]
    # with open("bb.txt","r") as f:
    #     for line in f:
    #         goods=line.split()
    #         res=float(goods[-1])*float(goods[-2])
    #         money.append(res)
    #
    # print(sum(money))
    #
    # f=open("bb.txt")
    # g=(float(line.split()[-1])*float(line.split()[-2]) for line in f)
    # print(sum(g))

    # res=[]
    # with open("bb.txt") as f:
    #     for line in f:
    #         l=line.split()
    #         d={}
    #         d['name']=l[0]
    #         d['price'] = l[1]
    #         d['count'] = l[2]
    #         res.append(d)
    #
    # print(res)

    # with open('bb.txt') as f:
    #     res=(line.split() for line in f)
    #     print(res)
    #     dis_g=({'name':i[0],'price':i[1],'count':i[2]} for i in res)
    #     print(dis_g)
    #     apple=next(dis_g)
    #     print(apple['count'])


    # money1=next(money)


    with open('bb.txt') as f:
        res=(line.split() for line in f)
        dic_g=({'name':i[0],'price':i[1],'count':i[2]} for i in res if float(i[1])>10000)
        # print(next(dic_g))
       
    for i in dic_g:
            print(i)

    声明式编程
    # 列表解析
    l=[expression for item1 in iterable1 if condition1
                  for item2 in iterable2 if condition2
                  for item3 in iterable3 if condition3
       ]

    # 生成器表达式
    g=(expression for item1 in iterable1 if condition1
                  for item2 in iterable2 if condition2
                  for item3 in iterable3 if condition3
        )


  • 相关阅读:
    【内存泄漏】方法三:利用linux的valgrind命令定位内存泄露(Memory Leak)
    【内存泄漏】方法二:利用linux的mtrace命令定位内存泄露(Memory Leak)
    Windows下sqlmap的使用_01
    关于安装和使用BurpSuite及Java环境的配置问题
    Windows下修改环境变量的几种方法
    OPPO VOOC快充原理
    在线代码运行
    Linux在线学习模拟器
    socket设置为非阻塞模式
    pthread_mutexattr_t设置的相关函数及其说明
  • 原文地址:https://www.cnblogs.com/jensenxie/p/9102819.html
Copyright © 2011-2022 走看看