码迷,mamicode.com
首页 > 其他好文 > 详细

yield from语法应用

时间:2019-12-27 23:30:28      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:ict   迭代   pre   应用   对象   for   代码   mil   lis   

yield from 是python3.3中新增的语法, 语法结构: yield from  iterable

 

在上一篇文章中自定义了一个my_chain函数,现在可以yield from方法对其进行精简

 

# 自定义一个chain

def my_chain(*args, **kwargs):
    """注意: args是一个tuple, tuple是一个可迭代对象"""
    for iterable_obj in args:
        for value in iterable_obj:
            yield value

def my_chain02(*args, **kwargs):
    """注意: args是一个tuple, tuple是一个可迭代对象"""
    for iterable_obj in args:
        yield from iterable_obj  # 一行代码干了两行代码的事
        # for value in iterable_obj:
        #     yield value


for value in my_chain02(my_list, my_dict, range(20, 30)):
    print(value, end=",")  # 1,2,3,name,age,20,21,22,23,24,25,26,27,28,29,

 

 

yield和yield from的区别

def g1(iterable):
    """yield直接返回这个可迭代对象"""
    yield iterable


def g2(iterable):
    """yield from 直接返回迭代对象中的每个元素"""
    yield from  iterable


for value in g1(range(10)):
    print(value)  # range(0, 10)

for value in g2(range(10)):
    print(value, end=,)  # 0,1,2,3,4,5,6,7,8,9,

yield from语法应用

标签:ict   迭代   pre   应用   对象   for   代码   mil   lis   

原文地址:https://www.cnblogs.com/z-qinfeng/p/12109821.html

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