概述
一、生成式
1、列表生成式
1)语法
[expression for item1 in iterable1 if condition1
for item2 in iterable2 if condition2
...
for itemN in iterableN if conditionN
]
类似于
res=[ ]
for item1 in iterable1:
if condition1:
for item2 in iterable2:
if condition2
...
for itemN in iterableN:
if conditionN:
res.append(expression)
2)示例
l=[i**2 for i in range(5) if i > 2]
print(l)
names=['lqz_sb','yj_sb','jason_sb','egon']
l=[name for name in names if name.endswith('sb')]
print(l)
3)优点:
方便,改变了编程习惯,可称之为声明式编程
2、集合生成式
res={i for i in range(5)}
print(res)
3、字典生成式
res={f'k{i}': i**2 for i in range(5)}
print(res)
二、生成器表达式
#1、把列表推导式的[]换成()就是生成器表达式
#2、示例:生一筐鸡蛋变成给你一只老母鸡,用的时候就下蛋,这也是生成器的特性
#3、优点:省内存,一次只产生一个值在内存中
res=(i for i in range(5))
print(res,type(res))
print(next(res))
print(next(res))
print(next(res))
print(next(res))
print(next(res))
print(next(res))
nums=(i for i in range(200000))
res=sum(nums)
print(res)
with open('01 迭代器.py', mode='rt', encoding='utf-8') as f:
data=f.read()
print(len(data))
# 2202
res=0
for line in f:
res+=len(line)
res = sum((len(line) for line in f))
res = sum(len(line) for line in f)
print(res)
最后
以上就是烂漫月亮为你收集整理的Python之生成式一、生成式二、生成器表达式的全部内容,希望文章能够帮你解决Python之生成式一、生成式二、生成器表达式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复