码迷,mamicode.com
首页 > 编程语言 > 详细

python_函数进阶3

时间:2018-08-20 17:23:28      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:传值   __next__   推导   for   ==   一个   内存   超过   style   

一、生成器

1、自己用python代码写的迭代器,生成器的本质就是迭代器

2、def fun():

    print(111)
    yield ‘aa‘

    print(222)

y = fun()  #生成器函数的对象

print(y.__next__)   #111,aa  __next__取值

3、yield不会结束函数,一个next对应一个yield,yield将值返回给对象

4、生成器直接创建,不需要转化,从本质就节省内存

5、send  yield

  send与next一样,也是对生成器取值(执行一个yield方法)

  send可以给上一个yield传值

  第一次取值永远是next

  最后一个yield永远也得不到send传的值

 

二、列表推导式

1、循环模式

  l = [i for i in range(100)]

2、筛选模式

  l2 = [i for i in range(100) if i %2==0]

3、优点:一行解决,方便

   缺点:不易排错,不能超过三次循环

4、生成器表达式

  将列表推导式[]换成()即可

5、字典推导式

  dic = [‘a‘:10,‘b‘:20]

  ite = (dic[k]:k for k in dic)

python_函数进阶3

标签:传值   __next__   推导   for   ==   一个   内存   超过   style   

原文地址:https://www.cnblogs.com/echo-up/p/9506510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!