问题13:如何在for语句中迭代多个可迭代的对象
from random import randint
a1 = [randint(10, 50) for _ in range(5)]
a2 = [randint(10, 50) for _ in range(5)]
a3 = [randint(10, 50) for _ in range(5)]
a4 = []
例一:并行操作:在一个for循环中实现多个列表的并行迭代;
方案:使用内置函数zip,将多个迭代对象合并,每次迭代返回一个元组
案例:对3个列表同时迭代,计算各列表对应元素的和;
#方法一:直接用for循环引用
#弊端:只能支持引索操作:a1[],若操作对象是生成器,则不能实现;
for i in range(5):
t = a1[i] + a2[i] + a3[i]
a4.append(t) print(a4)
#输出:[84, 67, 85, 88, 82] #方法二:用内置函数zip()
for x, y, z in zip(a1, a2, a3):
a4.append(x + y + z) print(a4)
#输出:[44, 72, 73, 94, 130]
例二:川行操作:在一个for循环中实现多个列表的川行迭代;
方案:使用标准库itertools.chain,它能使多个迭代对象连接
itertools.chain的使用,也可参考:Python:itertools库的使用
场景一:
from itertools import chain
b1 = [1, 2, 3, 4]
b2 = ['a', 'b', 'c']
b3 = list(chain(b1, b2)) print(b3)
#输出:[1, 2, 3, 4, 'a', 'b', 'c']
场景二:
for x in chain(b1, b2):
print(x)
#输出:1 2 3 4 a b c
案例:对4个列表进行迭代操作,筛选出目标数据(大于40的个数):
from itertools import chain
from random import randint
a1 = [randint(10, 50) for _ in range(40)]
a2 = [randint(10, 50) for _ in range(41)]
a3 = [randint(10, 50) for _ in range(42)]
a4 = [randint(10, 50) for _ in range(43)]
count = 0 for x in chain(a1, a2, a3, a4):
if x >=40:
count += 1 print(count)
问题13:如何在for语句中迭代多个可迭代的对象的更多相关文章
- 【笔记】如何在for语句中迭代多个可迭代对象
并行=>使用内置函数zip,它能将多个可迭代对象合并,每次迭代返回一个元组. for i,j,k in zip(a,b,c): TODO 穿行=>使用标准库中的itertools.chai ...
- Sql语法高级应用之六:如何在Sql语句中如何使用TRY...CATCH
TRY...CATCH使用范例 BEGIN TRY //逻辑语句块 END TRYBEGIN CATCH //Catch异常处理块 SET @msg = ERROR_MESSAGE(); PRINT ...
- mybatis的xml中sql语句中in的写法(迭代遍历)
这里使用 foreach标签 <foreach item="item" collection="listTag" index="index&q ...
- python迭代-如何在一个for语句中迭代多个可迭代对象
如何在一个for语句中迭代多个可迭代对象 问题举例 (1)某班学生期末考试成绩,语文,数学,英语分别存储在3个列表中,同时迭代三个列表,计算每个学生的总分 (2)某年级有4个班,某次考试每班英语成绩分 ...
- 如何在一个for语句中迭代多个对象(2.7)
如何在一个for语句中迭代多个对象 总结: 并行迭代使用zip(l1, l2, l3) 每次迭代从3个列表里各取一个数据 串行迭代使用itertools.chain(l1, l2, l3) 相当于把3 ...
- 8、如何实现可迭代对象和迭代器对象 9、如何使用生成器函数实现可迭代对象 10、如何进行反向迭代以及如何实现反向迭代 11、如何对迭代器做切片操作 12、如何在一个for语句中迭代多个可迭代对象
8.如何实现可迭代对象和迭代器对象 PS:注意重载Iterator方法的时候,需要和原来的方法名一样,否则创建实例时会报错 from collections import Iterator,Itera ...
- Python-如何在一个for循环中迭代多个可迭代对象?
案例: 某班学生期末考试成绩,语文.数学.英语分别存储在3个列表中,同时迭代三个列表.,计算每个学生的总分(并行) 某年级有4个班,某次英语成绩分别记录在4个列表中,依次迭代每个列表,统计全年级高于9 ...
- JAVA中的for-each循环与迭代
在学习java中的collection时注意到,collection层次的根接口Collection实现了Iterable<T>接口(位于java.lang包中),实现这个接口允许对象成为 ...
- sql语句中获取datetime的日期部分或时间部分
sql语句中获取datetime的日期部分 sql语句中 经常操作操作datetime类型数据.今天在写一个存储过程的时候需要将 一个datetime的值的 日期部分提取出来.网上有许多这方面的介绍. ...
随机推荐
- ABAP下载服务器文件到本机
转自http://blog.sina.com.cn/s/blog_701594f40100l8ml.html ABAP:下载服务器文件到本机 对服务器的文件进行读写操作,SAP提供了OPEN DATA ...
- Apache Shiro 使用手册(四)Realm 实现(转发:http://kdboy.iteye.com/blog/1169631)
在认证.授权内部实现机制中都有提到,最终处理都将交给Real进行处理.因为在Shiro中,最终是通过Realm来获取应用程序中的用户.角色及权限信息的.通常情况下,在Realm中会直接从我们的数据源中 ...
- 第1条:确认自己所用的Python版本
很多电脑都预装了多个版本的标准CPython运行时环境,然而,在命令行中输入默认的python命令之后,究竟会执行哪一个版本无法肯定. python通常是python2.7的别名,但也有可能是pyth ...
- CI 框架下执行CLI(命令行)
1.可以按照Ci官方文件的指导来进行操作 让我们先创建一个简单的控制器,打开你的文本编辑器,新建一个文件并命名为 Tools.php,然后输入如下的代码: <?php class Tools e ...
- Advanced GET 9.1 修正汉化版(免注册、页面加载、保存都正常)
http://www.55188.com/viewthread.php?tid=2846679 Advanced GET 9.1 修正汉化版(免注册.页面加载.保存都正常) 网上流传的很多GET9.1 ...
- mybatis_1
mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE co ...
- rewrite_static
<?php class MyObject { public static $myStaticVar = 0; function myMethod() { self::$myStaticVar + ...
- winform窗体取消最大化双击标题最大化
实现目标,固定窗体大小,1.窗体标题去掉最大化按钮2.双击窗体标题也不会最大化,彻底取消最大化 问题,如果设置窗体MaximizeBox和MinimumSize属性,看似问题解决了,单随之而来的问题是 ...
- apache中配置php支持模块模式、cgi模式和fastcgi模式的实验
首先安装apache.mysql和php,依次顺序安装. 1.apache.mysql的安装比较简单,略过 2. php的安装,我安装的是php5.3.6内置了php-fpm,所以不需要再单独下补丁了 ...
- PyVmomi Clone_VM with CustomizaitonSpec
调用CustomizaitonSpec来Clone VM ''' Created on 2017-09-03 @author: Vincen ''' from pyVmomi import vim f ...