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

总结:

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

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

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

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

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

from random import randint
l1 = ['jwang', 'Tom', 'Jerry', 'Liming']
l2 = [randint(60, 100) for x in range(4)]
l3 = [randint(60, 100) for x in range(4)]
l4 = [randint(60, 100) for x in range(4)] print(l1)
print(l2)
print(l3)
print(l4) for name, math, english, physics in zip(l1, l2, l3, l4):
print("name:%s, math:%s, english:%s, physics:%s" % (name, math, english, physics))

output:

['jwang', 'Tom', 'Jerry', 'Liming']
[64, 69, 94, 93]
[81, 89, 64, 80]
[69, 94, 81, 62]
name:jwang, math:64, english:81, physics:69
name:Tom, math:69, english:89, physics:94
name:Jerry, math:94, english:64, physics:81
name:Liming, math:93, english:80, physics:62

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

from random import randint
l1 = ['jwang', 'Tom', 'Jerry', 'Liming']
l2 = [randint(60, 100) for x in range(4)]
l3 = [randint(60, 100) for x in range(4)]
l4 = [randint(60, 100) for x in range(3)] print(l1)
print(l2)
print(l3)
print(l4) for name, math, english, physics in zip(l1, l2, l3, l4):
print("name:%s, math:%s, english:%s, physics:%s" % (name, math, english, physics))

output:

['jwang', 'Tom', 'Jerry', 'Liming']
[92, 66, 91, 75]
[72, 92, 100, 77]
[71, 67, 98]
name:jwang, math:92, english:72, physics:71
name:Tom, math:66, english:92, physics:67
name:Jerry, math:91, english:100, physics:98

串性迭代 使用chain

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

output:

1
2
3
4
a
b
c

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

from itertools import chain
l1 = [randint(60, 100) for x in range(4)]
l2 = [randint(60, 100) for x in range(4)]
l3 = [randint(60, 100) for x in range(4)]
l4 = [randint(60, 100) for x in range(3)] print(l1)
print(l2)
print(l3)
print(l4) count = 0
for x in chain(l1, l2, l3, l4):
if x>90:
count += 1
print(count)

output:

[66, 94, 66, 73]
[98, 90, 90, 60]
[69, 83, 75, 61]
[71, 83, 68]
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. spfa(模板)

    #include<iostream> #include<cstdio> #include<cstring> using namespace std; int cnt ...

  2. Java面试题一览

    Java面试题一览

  3. 用 Flask 来写个轻博客 (17) — MV(C)_应用蓝图来重构项目

    目录 目录 前文列表 重构目录结构 重构代码 使用蓝图后的路由过程 总结 前文列表 用 Flask 来写个轻博客 (1) - 创建项目 用 Flask 来写个轻博客 (2) - Hello World ...

  4. (转)spring ioc原理(看完后大家可以自己写一个spring)

    原文地址:https://blog.csdn.net/it_man/article/details/4402245 最近,买了本Spring入门书:spring In Action .大致浏览了下感觉 ...

  5. 打开myeclipse出现这个错是为什么

  6. Dubbo 微服务系列(03)服务注册

    Dubbo 微服务系列(03)服务注册 [TOC] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 图1 Dubbo经典架构图 注:本图来源 Dubbo官方架构 ...

  7. VIM 单词大小写转换

    遇到大小写转换的时候,我觉得首先一个不应该直接放弃的选择就是采用正则表达式以及文本替换功能.不过,针对单个单词的转换在VIM中还有更为简单的方式. 组合命令gUw可以实现把光标当前所在位置的一个单词转 ...

  8. sparkSQL获取DataFrame的几种方式

    sparkSQL获取DataFrame的几种方式 1. on a specific DataFrame. import org.apache.spark.sql.Column df("col ...

  9. [已解决]报错: TLS handshake timeout

    为了永久性保留更改,您可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值. { "registry-mirrors": ...

  10. php中mkdir()函数的权限问题(转)

    问题描述: 使用以下php代码创建了一个目录,期望目录的权限是0777,实际结果是0755 mkdir('./aa/',0777); 分析与测试结果: 1.mkdir()函数指定的目录权限只能小于等于 ...