1、并行迭代

迭代元组可以进行拆包迭代。

  1. >>> zip([1,2,3,4],('a','b','c','d'))
  2. [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
  3.  
  4. >>> zip([1,2,3,4],('a','b','c')) #当元素个数不一致时,以少的为准
  5. [(1, 'a'), (2, 'b'), (3, 'c')]
  6.  
  7. >>> zip([1,2,3,4],('a','b','c','d'),"")
  8. [(1, 'a', ''), (2, 'b', ''), (3, 'c', ''), (4, 'd', '')]
  9.  
  10. >>> zip([1,2,3,4],('a','b','c'),"")
  11. [(1, 'a', ''), (2, 'b', ''), (3, 'c', '')]

实现并行迭代例子实现

(1)生成三科成绩的3个列表

  1. >>> from random import randint
  2. >>> math = [randint(60,100) for _ in xrange(40)]
  3. >>> english = [randint(60,100) for _ in xrange(40)]
  4. >>> chinese = [randint(60,100) for _ in xrange(40)]

(2)由zip()函数将三科成绩的3个列表,组成一个元组。迭代元组可以进行拆包迭代

  1. >>> for m,e,c in zip(math,english,chinese):
  2. print (m+e+c),

输出结果:285 234 207 204 272 268 234 280 241 232 202 241 236 262 231 206 238 246 236 224 254 248 258 234 246 227 216 240 216 214 224 250 222 228 223 248 252 201 265 192

2、串行迭代

  1. >>> from itertools import chain
  1. >>> help(chain)
  2. Help on class chain in module itertools:
  3.  
  4. class chain(__builtin__.object)
  5. | chain(*iterables) --> chain object
  6. |
  7. | Return a chain object whose .next() method returns elements from the
  8. | first iterable until it is exhausted, then elements from the next
  9. | iterable, until all of the iterables are exhausted.
  10. |
  11. | Methods defined here:
  12. |
  13. | __getattribute__(...)
  14. | x.__getattribute__('name') <==> x.name
  15. |
  16. | __iter__(...)
  17. | x.__iter__() <==> iter(x)
  18. |
  19. | from_iterable(...)
  20. | chain.from_iterable(iterable) --> chain object
  21. |
  22. | Alternate chain() constructor taking a single iterable argument
  23. | that evaluates lazily.
  24. |
  25. | next(...)
  26. | x.next() -> the next value, or raise StopIteration
  27. |
  28. | ----------------------------------------------------------------------
  29. | Data and other attributes defined here:
  30. |
  31. | __new__ = <built-in method __new__ of type object>
  32. | T.__new__(S, ...) -> a new object with type S, a subtype of T

help(chain)

  1. >>> for x in chain([1,2,3,4],"abc"):
  2. print x,

输出结果:1 2 3 4 a b c

串行迭代例子实现

(1)生成四个班级的学习的成绩列表,每班的人数不同

  1. >>> from random import randint
  2. >>> e1= [randint(60,100) for _ in xrange(40)]
  3. >>> e2= [randint(60,100) for _ in xrange(46)]
  4. >>> e3= [randint(60,100) for _ in xrange(50)]
  5. >>> e4= [randint(60,100) for _ in xrange(40)]

(2)串行对各个班级进行迭代,判断每个学生成绩,大于90的将人数加1

  1. >>> count = 0
  2. >>> for x in chain(e1,e2,e3,e4):
  3. if x>90:
  4. count +=1
  5.  
  6. >>> count

输出结果:49

3-6如何在一个for语句中迭代多个可迭代对象的更多相关文章

  1. python迭代-如何在一个for语句中迭代多个可迭代对象

    如何在一个for语句中迭代多个可迭代对象 问题举例 (1)某班学生期末考试成绩,语文,数学,英语分别存储在3个列表中,同时迭代三个列表,计算每个学生的总分 (2)某年级有4个班,某次考试每班英语成绩分 ...

  2. 如何在一个for语句中迭代多个对象(2.7)

    如何在一个for语句中迭代多个对象 总结: 并行迭代使用zip(l1, l2, l3) 每次迭代从3个列表里各取一个数据 串行迭代使用itertools.chain(l1, l2, l3) 相当于把3 ...

  3. 8、如何实现可迭代对象和迭代器对象 9、如何使用生成器函数实现可迭代对象 10、如何进行反向迭代以及如何实现反向迭代 11、如何对迭代器做切片操作 12、如何在一个for语句中迭代多个可迭代对象

    8.如何实现可迭代对象和迭代器对象 PS:注意重载Iterator方法的时候,需要和原来的方法名一样,否则创建实例时会报错 from collections import Iterator,Itera ...

  4. mysql 更新 语句中 的 safe_mode

    在mysql5中,可以设置safe mode,比如在一个更新语句中UPDATE table_name SET bDeleted=0;执行时会错误,报:You are using safe update ...

  5. SQL语句中的select高级用法

    #转载请联系 为了更好的了解下面的知识点,我们先创建两张表并插入数据. # 学生表 +----+-----------+------+--------+--------+--------+------ ...

  6. mybatis的xml中sql语句中in的写法(迭代遍历)

    这里使用 foreach标签 <foreach  item="item" collection="listTag" index="index&q ...

  7. 问题13:如何在for语句中迭代多个可迭代的对象

    from random import randint a1 = [randint(10, 50) for _ in range(5)] a2 = [randint(10, 50) for _ in r ...

  8. MySQL 如何在一个语句中更新一个数值后返回该值 -- 自增长种子竞态问题处理

    什么是竞态问题? 假设有一个计数器,首先当前值自增长,然后获取到自增长之后的当前值.自增长后的值有可能被有些操作用来当做唯一性标识,因此并发的操作不能允许取得相同的值. 为什么不能使用使用UPDATE ...

  9. python_如何在一个for循环中迭代多个可迭代对象?

    案例: 某班学生期末考试成绩,语文.数学.英语分别存储在3个列表中,同时迭代三个列表.,计算每个学生的总分(并行) 某年级有4个班,某次英语成绩分别记录在4个列表中,依次迭代每个列表,统计全年级高于9 ...

随机推荐

  1. 【方法】原生js实现方法ajax封装

    /* 参数说明* type[String] 请求方式('POST'或'GET') 默认设置'GET'方式* dataType[String] 获取到的后台数据格式 默认'JSON'格式* async[ ...

  2. jquery lt选择器 语法

    jquery lt选择器 语法 作用::lt 选择器选取带有小于指定 index 值的元素.index 值从 0 开始.经常与其他元素/选择器一起使用,来选择指定的组中特定序号之前的元素(如上面的例子 ...

  3. XML to HTML

    本章讲解如何把 XML 数据显示为 HTML. 在 HTML 中显示 XML 数据 在上一节中,我们讲解了如何通过 JavaScript 来解析 XML 并访问 DOM. 本例遍历一个 XML 文件 ...

  4. sh_03_第1个函数

    sh_03_第1个函数 # 注意:定义好函数之后,之表示这个函数封装了一段代码而已 # 如果不主动调用函数,函数是不会主动执行的 def say_hello(): print("hello ...

  5. ZooKeeper设置开机启动

    1 在init.d目录下新建脚本文件 进入到/etc/rc.d/init.d目录下,命令是: cd    /etc/rc.d/init.d 新建一个名为zookeeper的文件,命令是: touch ...

  6. es6的class关键字与es5的构造函数

    1,构造函数 function Point(x, y) { this.x = x; this.y = y; } Point.prototype.toString = function () { ret ...

  7. 不属于java语言鲁棒性特点的是

      A:java能检查程序在编译和运行时的错误 B:java能运行虚拟机实现跨平台 C:java自己操纵内存减少了内存出错的可能性 D:java还实现了真数组,避免了覆盖数据的可能 鲁棒性(Robus ...

  8. freetype相关总结

    FreeType-2.7 API : https://www.freetype.org/freetype2/docs/reference/ft2-basic_types.html ---------- ...

  9. python 中文路径

    ipath = 'D:/学习/语料库/SogouC.mini/Sample/C000007/10.txt' uipath = unicode(ipath , "utf8")

  10. 基于DRF的图书增删改查

    功能演示 信息展示 添加功能 编辑功能 删除功能 DRF构建后台数据 本例的Model如下 from django.db import models class Publish(models.Mode ...