您的位置:首页 > 编程语言 > Python开发

python 使用yield

2013-11-21 23:33 302 查看
使用yield和普通函数return最大的区别就是return在处理全部数据后把最终结果返回到调用者,调用完成之后就无法返回去控制函数,但是yield是把每一个处理结果返回给调用者处理,然后再回到函数处理下一项,知道函数处理完成每一项为止,yield返回的是一个迭代器,对于处理长度很长的列表对内存的效率是很有帮助的,尤其在处理无限级的序列的时候

from itertools import*

a=[{'a':12},{'a':14},{'a':12},{'a':14},{'a':32},{'a':32}]

def geta():

    for i in a:

        yield i

#      

data=geta()

for key,value in groupby(sorted(data,key=lambda i:i.get('a')),lambda a:a.get('a')):

    print key,count(list(value))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: