码迷,mamicode.com
首页 > Web开发 > 详细

生成器,迭代器,json

时间:2017-10-25 11:37:53      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:就会   遍历   span   反序   end   必须   while   port   序列化   

一、生成器

可以通过for遍历的数据类型就是可迭代类型,可以next的为迭代器,迭代器都是可以迭代的。比如列表

生成器是在没有调用时是不会生成元素的。只有通过调用,比如for循环,或者next()就会生成一个新元素。

举例

c=(i*2 for i in range(10))
    for i in c:
        print(i)

  这个就是一个生成器。

函数可以通过yield来变成生成器

def sal(max):
    n=0
    while n<max:
        yield n
        n+=1

  这样也是一个生成器

  二、迭代器

可以通过next来取得当前元素,返回当前状态

def sport:
    while True:
        project=yield
        print("start %s sport"%project)

c1=sport()
c2=sport()

  迭代器可以通过send()来发射一个值给予yield,并返回下一个状态,

通过send可以达到并发的效果

三、json

json.dumps和json.loads序列化和反序列化

json只能用于比较简单的数据类型:列表,字典这些

复杂数据比如函数,就必须通过pickle来序列化

pickle.dumps和pickle.loads序列化和反序列化

生成器,迭代器,json

标签:就会   遍历   span   反序   end   必须   while   port   序列化   

原文地址:http://www.cnblogs.com/woshimanong/p/7727391.html

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