如何在一个for语句中迭代多个对象

总结:

并行迭代使用zip(l1, l2, l3)

每次迭代从3个列表里各取一个数据

串行迭代使用itertools.chain(l1, l2, l3)

相当于把3个里边拼接成了一个列表再迭代

并行迭代:使用zip 某班4个人各科成绩的迭代

  1. from random import randint
  2. l1 = ['jwang', 'Tom', 'Jerry', 'Liming']
  3. l2 = [randint(60, 100) for x in range(4)]
  4. l3 = [randint(60, 100) for x in range(4)]
  5. l4 = [randint(60, 100) for x in range(4)]
  6. print(l1)
  7. print(l2)
  8. print(l3)
  9. print(l4)
  10. for name, math, english, physics in zip(l1, l2, l3, l4):
  11. print("name:%s, math:%s, english:%s, physics:%s" % (name, math, english, physics))

output:

  1. ['jwang', 'Tom', 'Jerry', 'Liming']
  2. [64, 69, 94, 93]
  3. [81, 89, 64, 80]
  4. [69, 94, 81, 62]
  5. name:jwang, math:64, english:81, physics:69
  6. name:Tom, math:69, english:89, physics:94
  7. name:Jerry, math:94, english:64, physics:81
  8. name:Liming, math:93, english:80, physics:62

如果列表长度不一样也能迭代

  1. from random import randint
  2. l1 = ['jwang', 'Tom', 'Jerry', 'Liming']
  3. l2 = [randint(60, 100) for x in range(4)]
  4. l3 = [randint(60, 100) for x in range(4)]
  5. l4 = [randint(60, 100) for x in range(3)]
  6. print(l1)
  7. print(l2)
  8. print(l3)
  9. print(l4)
  10. for name, math, english, physics in zip(l1, l2, l3, l4):
  11. print("name:%s, math:%s, english:%s, physics:%s" % (name, math, english, physics))

output:

  1. ['jwang', 'Tom', 'Jerry', 'Liming']
  2. [92, 66, 91, 75]
  3. [72, 92, 100, 77]
  4. [71, 67, 98]
  5. name:jwang, math:92, english:72, physics:71
  6. name:Tom, math:66, english:92, physics:67
  7. name:Jerry, math:91, english:100, physics:98

串性迭代 使用chain

  1. for x in chain([1, 2, 3, 4],['a', 'b', 'c']):
  2. print(x)

output:

  1. 1
  2. 2
  3. 3
  4. 4
  5. a
  6. b
  7. c

4个班 每个班的英语成绩各存一个列表,统计全学年成绩高于90的人数

  1. from itertools import chain
  2. l1 = [randint(60, 100) for x in range(4)]
  3. l2 = [randint(60, 100) for x in range(4)]
  4. l3 = [randint(60, 100) for x in range(4)]
  5. l4 = [randint(60, 100) for x in range(3)]
  6. print(l1)
  7. print(l2)
  8. print(l3)
  9. print(l4)
  10. count = 0
  11. for x in chain(l1, l2, l3, l4):
  12. if x>90:
  13. count += 1
  14. print(count)

output:

  1. [66, 94, 66, 73]
  2. [98, 90, 90, 60]
  3. [69, 83, 75, 61]
  4. [71, 83, 68]
  5. 2

如何在一个for语句中迭代多个对象(2.7)的更多相关文章

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

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

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

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

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

    1.并行迭代 迭代元组可以进行拆包迭代. >>> zip([1,2,3,4],('a','b','c','d')) [(1, 'a'), (2, 'b'), (3, 'c'), (4 ...

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

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

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

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

  6. 【笔记】如何在for语句中迭代多个可迭代对象

    并行=>使用内置函数zip,它能将多个可迭代对象合并,每次迭代返回一个元组. for i,j,k in zip(a,b,c): TODO 穿行=>使用标准库中的itertools.chai ...

  7. Mybatis&orcale update语句中接收参数为对象

    Mybatis的 mapper.xml 中 update 语句使用 if 标签判断对像属性是否为空值. UserDTO是传过来参数的类型,userDTO是在mapperDao接口中给更新方法的参数起的 ...

  8. mysql 更新 语句中 的 safe_mode

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

  9. 【2017-2-24】C#循环嵌套,跳转语句,迭代穷举,异常语句,while循环

    循环嵌套 在一个循环体语句中包含另一个循环语句: 99乘法表 ; i <= ; i++) { ; j <= i; j++) { Console.Write(i+"x"+ ...

随机推荐

  1. HTML-参考手册: 颜色混搭

    ylbtech-HTML-参考手册: 颜色混搭 1.返回顶部 1. HTML 颜色混搭 混搭两种颜色,并查看效果: 选择颜色:     #FF0000   #0000FF   顶部颜色:        ...

  2. 如何在android studio中cordova的混合开发

    基于Android Studio 中Cordova的开发 cordova简介 Cordova的前身是PhoneGap 官网: (http://cordova.io) Cordova应是运行在客户端本地 ...

  3. array排序(按数组中对象的属性进行排序)

    使用array.sort()对数组中对象的属性进行排序 <template> <div> <a @click="sortArray()">降序& ...

  4. 02、python的基础-->占位符、while...else...、逻辑运算符

    1.%s.%d格式化输出程序(%占位符,s字符串,d数字) name = input('请输入姓名:') age = input('请输入年龄:') job = input('请输入工作:') hob ...

  5. Unity应用怎么暂停(Pause)

    非常多时候,应用程序或者是游戏须要用上暂停功能,unity提供了不少便捷的方式,列在以下: 1.在editor中,按下pausebutton就可以暂停 2.假设在代码中控制,能够通过设置Time.ti ...

  6. elementUI 限制上传个数limit

    :limit='1' // 个数限制.

  7. eslint 禁用命令

    /* eslint-disable */ ESLint 在校验的时候就会跳过后面的代码 还可以在注释后加入详细规则,这样就能避开指定的校验规则了 /* eslint-disable no-new */ ...

  8. css3新增(圆角边框(border-radius),盒子阴影(box-shadow),文字阴影(text-shadow),背景缩放(background-size))

    1.圆角边框  border-radius border-radius 属性用于设置元素的外边框圆角 语法:border-radius:length; 参数值可以是数值 或者 百分比 的形式 正方形, ...

  9. list采坑记录一下

    List<Integer> cards = Lists.newArrayList(6,10,11,12,21,23,29,30,38,39,42,43,46,51,53,59,60);Li ...

  10. linux常用命令-1系统相关命令

    hostname #计算机名 passwd #修改密码 reboot #重启 shutdown –r now #立刻重启(root用户使用) shutdown –r 10 #过10分钟自动重启(roo ...