当前位置: 首页 > 编程笔记 >

Python基于yield遍历多个可迭代对象

钱选
2023-03-14
本文向大家介绍Python基于yield遍历多个可迭代对象,包括了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遍历整个可迭代,包括了Python遍历整个可迭代的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 所以我在研究树遍历算法。例如,在K-d树遍历中,我们的目标是遍历节点直至叶子。这与其说是一个树搜索,不如说是一个根到叶的遍历。 在这种情况下,递归解决方案就足够了。但是,在C等语言中,递归调用函数需要将值推送到堆栈上,并在堆栈帧之间跳跃等。标准的递归方法类似于: 因此,考虑到二叉树有一个明确的上界(我相信这也可以扩展到其他树类型),以迭代方式执行此遍历是否更有效: 二叉树的最大高度是它的节点数,而

  • 本文向大家介绍Python用zip函数同时遍历多个迭代器示例详解,包括了Python用zip函数同时遍历多个迭代器示例详解的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要介绍的是Python如何使用zip函数同时遍历多个迭代器,文中的版本为Python3,zip函数是Python内置的函数。下面话不多说,来看详细的内容。 应用举例 这样就很简洁地实现了同时遍历两个列表,very pytho

  • 本文向大家介绍Python 迭代,for...in遍历,迭代原理与应用示例,包括了Python 迭代,for...in遍历,迭代原理与应用示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python 迭代,for...in遍历,迭代原理与应用。分享给大家供大家参考,具体如下: 迭代是访问集合元素的一种方式。什么时候访问元素,什么时候再迭代,比一次性取出集合中的所有元素要节约内存。特别是

  • 问题 你想遍历一个可迭代对象中的所有元素,但是却不想使用for循环。 解决方案 为了手动的遍历可迭代对象,使用 next() 函数并在代码中捕获 StopIteration 异常。 比如,下面的例子手动读取一个文件中的所有行: def manual_iter(): with open('/etc/passwd') as f: try: while T

  • 本文向大家介绍Java中迭代遍历数组,包括了Java中迭代遍历数组的使用技巧和注意事项,需要的朋友参考一下 要遍历Java中的数组,只需使用for循环即可。循环应一直到数组的长度才能显示所有元素。 示例 现在让我们来看一个遍历数组的示例- 输出结果 示例 我们还可以使用for循环遍历数组- 输出结果

  • 问题内容: 如何在Python中遍历对象的属性? 我有一堂课: 现在,我可以通过执行以下操作获取我的信息: 我想要做的是像这样循环遍历for循环中的属性: 问题答案: 更新 对于python 3,您应该使用而不是 PYTHON 2 PYTHON 3 这将打印

  • Java 8 为 Iterator 引入了一个 forEachRemaining(Consumer action) 默认方法,该方法所需的 Consumer 参数同样也是函数式接口。当程序调用 Iterator 的 forEachRemaining(Consumer action) 遍历集合元素时,程序会依次将集合元素传给 Consumer 的 accept(T t) 方法(该接口中唯一的抽象方法