如何在一个for语句中迭代多个对象(2.7)
如何在一个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)的更多相关文章
- python迭代-如何在一个for语句中迭代多个可迭代对象
如何在一个for语句中迭代多个可迭代对象 问题举例 (1)某班学生期末考试成绩,语文,数学,英语分别存储在3个列表中,同时迭代三个列表,计算每个学生的总分 (2)某年级有4个班,某次考试每班英语成绩分 ...
- 8、如何实现可迭代对象和迭代器对象 9、如何使用生成器函数实现可迭代对象 10、如何进行反向迭代以及如何实现反向迭代 11、如何对迭代器做切片操作 12、如何在一个for语句中迭代多个可迭代对象
8.如何实现可迭代对象和迭代器对象 PS:注意重载Iterator方法的时候,需要和原来的方法名一样,否则创建实例时会报错 from collections import Iterator,Itera ...
- 3-6如何在一个for语句中迭代多个可迭代对象
1.并行迭代 迭代元组可以进行拆包迭代. >>> zip([1,2,3,4],('a','b','c','d')) [(1, 'a'), (2, 'b'), (3, 'c'), (4 ...
- 问题13:如何在for语句中迭代多个可迭代的对象
from random import randint a1 = [randint(10, 50) for _ in range(5)] a2 = [randint(10, 50) for _ in r ...
- python_如何在一个for循环中迭代多个可迭代对象?
案例: 某班学生期末考试成绩,语文.数学.英语分别存储在3个列表中,同时迭代三个列表.,计算每个学生的总分(并行) 某年级有4个班,某次英语成绩分别记录在4个列表中,依次迭代每个列表,统计全年级高于9 ...
- 【笔记】如何在for语句中迭代多个可迭代对象
并行=>使用内置函数zip,它能将多个可迭代对象合并,每次迭代返回一个元组. for i,j,k in zip(a,b,c): TODO 穿行=>使用标准库中的itertools.chai ...
- Mybatis&orcale update语句中接收参数为对象
Mybatis的 mapper.xml 中 update 语句使用 if 标签判断对像属性是否为空值. UserDTO是传过来参数的类型,userDTO是在mapperDao接口中给更新方法的参数起的 ...
- mysql 更新 语句中 的 safe_mode
在mysql5中,可以设置safe mode,比如在一个更新语句中UPDATE table_name SET bDeleted=0;执行时会错误,报:You are using safe update ...
- 【2017-2-24】C#循环嵌套,跳转语句,迭代穷举,异常语句,while循环
循环嵌套 在一个循环体语句中包含另一个循环语句: 99乘法表 ; i <= ; i++) { ; j <= i; j++) { Console.Write(i+"x"+ ...
随机推荐
- [STemWin教程入门篇] 第一期:emWin介绍
转自:http://bbs.armfly.com/read.php?tid=1544 SEGGER公司介绍 了解emWin之前,先了解一下SEGGER这家公司,了解生产商才能对emWin有更加全面的认 ...
- 59、salesforce实现数据的批量处理
批处理,往自己的邮箱发一封邮件,批处理采用异步的处理方式处理数据,最多可以处理5000万条数据 global with sharing class MerchandiseBatch implement ...
- 数据分析系列篇:玩转excel
数据分析系列篇:玩转excel 不知道现在怎么也变得这么鸡婆,连excel都要准备写一篇.没办法,还有很多不是做数据的小伙伴们不会excel啊,抱着不抛弃.不放弃的态度,就讲下excel如何玩转.其实 ...
- 大数据学习笔记之Linux基础(一):Linux初窥
文章目录 一.Linux入门概述 1.1 概述 1.2 下载地址 1.3 Linux特点 1.4 Linux和Windows区别 二.VM安装相关 2.1 安装VMWare虚拟机 2.2 安装Cent ...
- Area的使用
本文转自-->王亮的博客文章[ASP.NET MVC 小牛之路]08 - Area 使用 文章引导 MVC路由解析---IgnoreRoute MVC路由解析---MapRoute MVC路由解 ...
- 将日志(Microsoft.Extensions.Logging)添加到.NET Core控制台应用程序
在.NET Core项目中,日志记录是通过依赖项注入进行管理的. 尽管这对于ASP.NET项目效果很好,但在启动Startup.cs中的新项目时,所有这些都会自动创建,而在控制台应用程序中则需要一些配 ...
- Django框架(二十七)—— ContentType组件
目录 ContentType组件 一.什么是ContentType组件 二.使用ContentType 三.使用场景总结 ContentType组件 一.什么是ContentType组件 conten ...
- __init__ 和__new__的区别
__init__和__new__的区别 __init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值. __new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例, ...
- zabbix快速安装(Ubuntu18.04, Nginx)
ubuntu18.04快速安装zabbix4.0 https://blog.csdn.net/qq_33317586/article/details/83867756 需要安装的东西:nginx,ph ...
- egrep 正则
首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同!正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串.vim.grep.awk .sed 都支 ...