yield的应用:多个可迭代对象联合遍历

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yield的应用:多个可迭代对象联合遍历相关的知识,希望对你有一定的参考价值。

使用itertools工具类中的chain方法,可以很方便的将多个iterable对象一起遍历. 不过,对于dict类型的iterable对象,只会遍历key.

 

from  itertools import chain

my_list = [1, 2, 3]
my_dict = {
    name: zs,
    age: 45
}
#  使用chain将三个可迭代对象一起遍历, dict是打印key
for value in chain(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,  

 

下面自定义一个my_chain,用于实现上面的功能

 

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


for value in my_chain(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的应用:多个可迭代对象联合遍历的主要内容,如果未能解决你的问题,请参考以下文章

Interator和Generator

生成器

迭代器与生成器yield

Generator的基本用法

yield from语法

python笔记九(迭代)