首页 > 代码库 > python列表生成式和生成器表达式小程序
python列表生成式和生成器表达式小程序
列表表达式
程序一:
常规写法:
egg_list=[] for i in range(100): egg_list.append(‘egg%s‘ %i) print(egg_list)
列表表达式写法:
l=[‘egg%s‘ %i for i in range(100) if i > 0] print(l)
程序二:
常规写法:
l=[1,2,3,4] s=‘hello‘ l1=[] for num in l: for s1 in s: t=(num,s1) l1.append(t) print(l1)
列表表达式写法:
l1=[(num,s1) for num in l if num > 2 for s1 in s] print(l1)
程序三:
常规写法:
import os g=os.walk(‘F:\\xuyaping‘) file_path_list=[] for i in g: # print(i) for j in i[-1]: file_path_list.append(‘%s\\%s‘ %(i[0],j)) print(file_path_list)
列表表达式写法:
g=os.walk(‘F:\\xuyaping‘) l1=[‘%s\\%s‘ %(i[0],j) for i in g for j in i[-1]] print(l1)
生成器表达式
相比列表表达式,只不过将[]换成了(),更加省内存。
程序一:
列表表达式写法:
l=[‘egg%s‘ %i for i in range(10000)] print(l)
生成器表达式写法:
g=l=(‘egg%s‘ %i for i in range(10000)) print(g) print(next(g)) print(next(g)) for i in g: print(i)
程序二:
常规写法:
f=open(‘a.txt‘) l=[] for line in f: line=line.strip() l.append(line) print(l)
列表表达式写法:
f=open(‘a.txt‘) f.seek(0) l1=[line.strip() for line in f] print(l1)
生成器表达式写法:
f.seek(0) g=(line.strip() for line in f) print(g) print(next(g))
以下待整理......
f=open(‘a.txt‘) g=(line.strip() for line in f) l=list(g) print(l) nums_g=(i for i in range(3)) # print(sum([1,2,3,4])) print(sum(nums_g))
python列表生成式和生成器表达式小程序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。