Python-如何在一个for循环中迭代多个可迭代对象?
2024-09-05 12:32:51
案例:
- 某班学生期末考试成绩,语文、数学、英语分别存储在3个列表中,同时迭代三个列表。,计算每个学生的总分(并行)
- 某年级有4个班,某次英语成绩分别记录在4个列表中,依次迭代每个列表,统计全年级高于90分人数
如何解决?
1. 方法1:通过索引
#!/usr/bin/python3 from random import randint def get_result(chinese, math, english):
total = []
# 循环索引进行取值,毕竟列表等长且成绩对应
for index in range(len(chinese)):
total.append(chinese[index] + math[index] + english[index])
return total if __name__ == '__main__':
# 生成 3 个成绩列表
chinese = [randint(60, 100) for _ in range(40)]
math = [randint(60, 100) for _ in range(40)]
english = [randint(60, 100) for _ in range(40)] # 统计 总成绩
total = get_result(chinese, math, english) for x in total:
print(x)
方法2: 通过zip函数,同时迭代3个列表
#!/usr/bin/python3 from random import randint def get_result(chinese, math, english):
total = []
# 通过zip函数进行迭代,实现同时迭代 3 个对象
for c, m, e in zip(chinese, math, english):
print(c, m, e)
total.append(c + m + e)
return total if __name__ == '__main__':
# 生成 3 个成绩列表
chinese = [randint(60, 100) for _ in range(40)]
math = [randint(60, 100) for _ in range(40)]
english = [randint(60, 100) for _ in range(40)] # 统计 总成绩
total = get_result(chinese, math, english) for x in total:
print(x)
2. 方法1: 通过 itertools中 chain方法
#!/usr/bin/python3 from random import randint
from itertools import chain def get_result(e1, e2, e3):
# 通过chain函数进行连续窜行迭代3个列表
for i in chain(e1, e2, e3):
print(i) if __name__ == '__main__':
# 生成 3 个班成绩单,1班36人,2班43人,3班40人
e1 = [randint(60, 100) for _ in range(36)]
e2 = [randint(60, 100) for _ in range(43)]
e3 = [randint(60, 100) for _ in range(40)] # 依次打印成绩
get_result(e1, e2, e3)
最新文章
- 在Mac下创建ASP.NET Core Web API
- mvc路由,mvc区域
- 提交表单注意事项<;script>;11111<;/script>;
- libevent源码分析(一)
- 【iOS】FMDB封装,查询自动mapping
- HTML ---滚动条样式代码及<;marquee>;标签的用法;
- PHP 归并排序
- 触发器记录表某一个字段数据变化的日志 包括插入insert 修改update 删除delete 操作
- Spring py登陆模块(包含 记录登陆时间,记录ip,增加积分)
- Android 底部导航栏实现一 Fragment-replace
- Java(Java SE7) 体系结构图
- Jq_Js_Js、Jq获取浏览器和屏幕各种高度宽度
- LitJson JavaScriptSerializer
- hdoj 5119 Happy Matt Friends 背包DP
- SSRS 报表中的Chart在IE中不显示
- thinkphp博客项目纪录
- Java基础之this关键字的作用
- poj2312 Battle City 【暴力 或 优先队列+BFS 或 BFS】
- lucene 第一天
- Cannot resolve the collation conflict between ";Chinese_PRC_CI_AS"; and ";SQL_L及由于排序规则不同导致查询结果为空的问题