python基础----列表生成式、生成器表达式
2017-04-12 17:12
831 查看
结论:
1.把列表解析的[]换成()得到的就是生成器表达式
2.列表解析与生成器表达式都是一种便利的编程方式,只不过生成器表达式更节省内存
3.Python不但使用迭代器协议,让for循环变得更加通用。大部分内置函数,也是使用迭代器协议访问对象的。例如, sum函数是Python的内置函数,该函数使用迭代器协议访问对象,而生成器实现了迭代器协议,所以,我们可以直接这样计算一系列值的和:
sum(x ** 2 for x in xrange(4))
而不用多此一举的先构造一个列表:
sum([x ** 2 for x in xrange(4)])
♥♥♥。◕‿◕。♥♥♥
一、列表生成式
#三元表达式 name='alex' name='egon' res='SB' if name == 'alex' else 'shuai' print(res)
#例子1 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 > 50] print(l)
#例子2 l=[1,2,3,4] s='hello' l1=[(num,s1) for num in l if num > 2 for s1 in s] print(l1) l1=[] for num in l: for s1 in s: t=(num,s1) l1.append(t) print(l1)
#例子3 import os g=os.walk('C:\\egon') 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('C:\\egon') l1=['%s\\%s' %(i[0],j) for i in g for j in i[-1]] print(l1)
二、生成器表达式
#例子1 l=['egg%s' %i for i in range(100)] 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)
#例子2 f=open('a.txt') l=[] for line in f: line=line.strip() l.append(line) print(l) 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))
#例子3 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))
#例子4 money_l=[] with open('b.txt') as f: for line in f: goods=line.split() res=float(goods[-1])*float(goods[-2]) money_l.append(res) print(money_l) f=open('b.txt') g=(float(line.split()[-1])*float(line.split()[-2]) for line in f) print(sum(g)) with open('b.txt') as f: print(sum((float(line.split()[-1])*float(line.split()[-2]) for line in f)))
#例子5 res=[] with open('b.txt') as f: for line in f: # print(line) l=line.split() # print(l) d={} d['name']=l[0] d['price']=l[1] d['count']=l[2] res.append(d) print(res)
相关文章推荐
- Py修行路 python基础 (十二) 协程函数应用 列表生成式 生成器表达式
- Python基础-列表生成式和生成器表达式
- Python基础-列表生成式和生成器表达式
- python基础之生成器、三元表达式、列表生成式、生成器表达式
- Python开发基础-Day9-生成器、三元表达式、列表生成式、生成器表达式
- python基础:列表生成式和生成器
- Python3 基础:高级特性-列表生成式和生成器
- python基础五_列表生成式,生成器
- python-基础知识之三元表达式、列表推导式、生成器表达式
- python全栈开发- day14列表推导式、生成器表达式、模块基础
- python基础之协程函数、列表表达式、生成器表达式
- python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)
- Python基础:08列表解析与生成器表达式
- Python 生成器函数,生成器表达式,迭代器,列表解析
- [转]Python里有趣的列表解析和生成器表达式
- 【Python】[高级特性]切片,迭代,列表生成式,生成器,迭代器
- python生成器表达式和列表解析
- 零基础学python-19.8 生成器表达式:当迭代器遇上列表解析
- Python基础6--列表生成式
- python列表解析和生成器表达式