itertools.chain()可以接受一个可迭代对象列表作为输入,并返回一个迭代器,有效的屏蔽掉在多个容器中迭代细节

>>> from itertools import chain
>>> a = [1, 2, 3, 4]
>>> b = ['x', 'y', 'z']
>>> for x in chain(a, b):
... print(x)
...
1234xyz
>>>

itertools.chain()接受一个或多个可迭代对象作为输入参数。然后创建一个迭代器,依次连续的返回每个可迭代对象的元素。这种方式要比先将序列合并再迭代要高效的多

# Inefficent
for x in a + b:
...
# Better
for x in chain(a, b):
...

第一种方案中, a + b 操作会创建一个全新的序列并要求a 和b 的类型一致。chian() 不会有这一步,所以如果输入序列非常大的时候会很省内存。并且当可迭代对象类型不一样的时候chain() 同样可以很好的工作。

转载于:https://www.cnblogs.com/baxianhua/p/10082805.html

python 不同集合上元素的迭代 chain()相关推荐

  1. 《Python Cookbook 3rd》笔记(4.12):不同集合上元素的迭代

    不同集合上元素的迭代 问题 你想在多个对象执行相同的操作,但是这些对象在不同的容器中,你希望代码在不失可读性的情况下避免写重复的循环. 解法 itertools.chain() 方法可以用来简化这个任 ...

  2. python中集合的元素可以是什么_python集合能做什么

    python集合的用途:1.可以运用集合去重,方法为将列表加入到集合中,然后进行遍历,最后打印出去重后的结果即可:2.运用集合可以进行关系测试,例如,求差集.并集. 一.什么是集合: 集合(set)是 ...

  3. python中集合的元素可以是任意数据类型_详解Python集合数据类型

    本篇介绍Python集合数据类型.集合不同于列表和元组类型,集合存储的元素是无序且不能重复的,同数学中的集合一样,集合可以执行集合的并.交.差运算.通过本篇的学习,可以达成如下目标. ● 掌握集合数据 ...

  4. python中集合的元素可以是任意数据类型_Python之基本数据类型——集合数据类型...

    集合set(可变的数据类型): 数据结构以大括号{}表示,各元素逗号隔开,例:{1,2,3,4}. 集合特征:无序,元素不重复 创建集合: s={1,2,3} pirnt(s) #---------- ...

  5. python中集合的元素可以是_python中的集合

    1.集合的特点 (1)集合由不同元素组成 (2)集合是无序的 (3)集合中的元素必须是不可变类型. 2.集合定义的方式 set("s;lg;;flgk;")//通过set方法来定义 ...

  6. python中集合的元素可以是任意数据类型_Python数据类型之列表

    列表 列表是由一系列按特定循序排列的元素组成(即有序集合).使用中括号[]来表示,并用逗号来分隔其中的元素. 列表的元素可以是任意类型. list 列表(序列)中的每个元素都分配一个数字索引,从 0 ...

  7. (小甲鱼python)集合笔记合集一 集合(上)总结 集合的简单用法 集合的各种方法合集:子、交、并、补、差、对称差集、超集

    一.基础复习 集合与字典区别 集合中所有元素都是独一无二的,并且也是无序的. 集合具有唯一性.无序性.有限性 >>> type({}) #字典 <class 'dict'> ...

  8. list选取多个元素 python_【幼儿园级】0基础学python一本通(上)——AI未来系列1...

    在未来面前,每个人都是学生 江海升月明,天涯共此时,关注江时! 引 子 本篇为AI未来系列第一篇.为什么要研究学习python?python是未来屠龙的屠龙宝刀,再辅助以我们的高中数学基础(足够用的屠 ...

  9. python集合的元素可以是_Python - 集合与元素之集合定义和基本操作方法

    原博文 2019-10-05 14:58 − 集合(set) 定义:由不同元素组成的集合,集合中是一组无序排列可hash的值(不可变的值)例如数字.字符串.元组,可以作为字典的key 定义集合: # ...

最新文章

  1. java phantomjs 2.1.1_Java之网络爬虫WebCollector2.1.2+selenium2.44+phantomjs2.1.1
  2. MATLAB计算杨氏模量,四阶弹性模量Cijkl如何在matlab里表示啊? - 计算模拟 - 小木虫 - 学术 科研 互动社区...
  3. Post请求,向服务器发送用户信息
  4. 同一目录下有大量文件会影响效率吗_到底是什么原因才导致 select * 效率低下的?
  5. LeetCode 444. 序列重建(拓扑排序)
  6. java中线程调度遵循的原则_深入理解Java多线程核心知识:跳槽面试必备
  7. linux驱动之设备号与创建设备节点
  8. 从零开始学安全(七)●Linux基础命令学习笔记
  9. phpstudy下载、安装、配置、网站部署、卸载
  10. eval(转换html,js eval函数使用,js对象和字符串互转实例
  11. 天涯上令人肝肠寸断的100个经典签名
  12. Java小游戏练习---超级玛丽代码实现
  13. 这才是高效判断素数的正确打开方式
  14. 北京交通大学万怀宇:时空交通数据预测方法及应用
  15. 文档矫正(计算机视觉实验)
  16. windows下安装启动rocketmq可视化界面
  17. 扫地机器人真的有用吗?到底值不值得买?
  18. 照片批量重命名为拍摄日期
  19. Kafka 的这些原理你知道吗
  20. 「学习笔记」移动Web开发之flex布局9

热门文章

  1. 全球及中国水深测量声呐行业应用前景及未来投资决策建议报告2022-2027年
  2. CEF:给客户端内嵌一个Chrome吧
  3. 社工库365开网站公开售卖盗取的账号信息
  4. 阿里PK拼多多-万祥军:丰收节交易会电商谋定农产品市场
  5. 日期时间格式加减操作
  6. 15.大容量存储结构
  7. CSS样式让一个块在最上层中显示
  8. numpy函数中的linspace
  9. 治标不治本:POI Ptg错误的解决方法
  10. 如何应对货期延迟(转自索菲外贸笔记)