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


Posted in Python onMarch 12, 2020

使用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中使用语句导入模块或包的机制研究
Mar 30 Python
python使用webbrowser浏览指定url的方法
Apr 04 Python
在Python中处理字符串之isdecimal()方法的使用
May 20 Python
python 专题九 Mysql数据库编程基础知识
Mar 16 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
django的聚合函数和aggregate、annotate方法使用详解
Jul 23 Python
Pygame的程序开始示例代码
May 07 Python
Python嵌入C/C++进行开发详解
Jun 09 Python
python字符串的index和find的区别详解
Jun 20 Python
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
Mar 03 Python
Python学习之包与模块详解
Mar 19 Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 Python
Python通过4种方式实现进程数据通信
Mar 12 #Python
Python多进程编程multiprocessing代码实例
Mar 12 #Python
Python多线程多进程实例对比解析
Mar 12 #Python
Python线程协作threading.Condition实现过程解析
Mar 12 #Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 #Python
Python基于read(size)方法读取超大文件
Mar 12 #Python
Python函数生成器原理及使用详解
Mar 12 #Python
You might like
实现树状结构的两种方法
2006/10/09 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
PHP静态成员变量
2017/02/14 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
2014/04/21 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
微信小程序页面传值实例分析
2017/04/19 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
js图片上传的封装代码
2017/08/01 Javascript
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
IE9 elementUI文件上传的问题解决
2018/10/17 Javascript
微信小程序实现带参数的分享功能(两种方法)
2019/05/17 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
Python简单进程锁代码实例
2015/04/27 Python
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
Python并发编程协程(Coroutine)之Gevent详解
2017/12/27 Python
tensorflow中next_batch的具体使用
2018/02/02 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
Python数据可视化实现多种图例代码详解
2020/07/14 Python
python线程优先级队列知识点总结
2021/02/28 Python
办公自动化专业大学生职业规划书
2014/03/06 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
中学生打架检讨书
2014/10/13 职场文书
求职信格式范文
2015/03/19 职场文书
2015中学教学工作总结
2015/07/22 职场文书
Mysql Online DDL的使用详解
2021/05/20 MySQL