最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python之yield表达式学习

来源:动视网 责编:小采 时间:2020-11-27 14:31:02
文档

python之yield表达式学习

python之yield表达式学习:python中有一个略微奇怪的表达式叫yield expression,本文就来探究一下这是个什么东西。一步一步来。 iterable 代码如下: mylist = [1,2,3] for item in mylist: print str(item) mylist是一个列表(list),我们可以逐条取出每一个it
推荐度:
导读python之yield表达式学习:python中有一个略微奇怪的表达式叫yield expression,本文就来探究一下这是个什么东西。一步一步来。 iterable 代码如下: mylist = [1,2,3] for item in mylist: print str(item) mylist是一个列表(list),我们可以逐条取出每一个it


python中有一个略微奇怪的表达式叫yield expression,本文就来探究一下这是个什么东西。一步一步来。

iterable

代码如下:


mylist = [1,2,3]
for item in mylist:
print str(item)

mylist是一个列表(list),我们可以逐条取出每一个item,这个过程叫做iteration。像list这样可以用”for…in…”依次遍历的对象被称为iterable,其他的iterable还有string、tuple、dict等。iterable的一个特点是所有的item会存储到内存中,这样会产生一些不便和不利的地方,于是催生了generator(后面讲到)。

list comprehension(列表推导式)

代码如下:


mylist = [x*x for x in range(3)]


表达式右边是一个for循环的简写形式,用[]包裹起来(称为list comprehension),表达式的值是一个list,我们可以像普通list那样使用”for…in…”遍历其元素,如:
代码如下:


for item in mylist:
print str(item)
generator

generator

对上面的list comprehension稍作修改:
代码如下:


mygenerator = (x*x for x in range(3))
for item in mygenerator:
print item


可以看到只是把[]换成了(),这时表达式的值不再是list,而是一个generator。

generator也属于iterable,但是其调用方式非常特别。

yield

代码如下:


def creatGenerator():
mylist = range(3)
for x in mylist:
yield x*x

mygenerator = creatGenerator()

for x in mygenerator:
print(x)


yield的使用方法和return是一样的。但是(重点来了):

文档

python之yield表达式学习

python之yield表达式学习:python中有一个略微奇怪的表达式叫yield expression,本文就来探究一下这是个什么东西。一步一步来。 iterable 代码如下: mylist = [1,2,3] for item in mylist: print str(item) mylist是一个列表(list),我们可以逐条取出每一个it
推荐度:
标签: 学习 表达式 python
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top