Python基于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,

以上是 Python基于yield遍历多个可迭代对象 的全部内容, 来源链接: utcz.com/z/318054.html

回到顶部