python_如何在一个for循环中迭代多个可迭代对象?
案例:
- 某班学生期末考试成绩,语文、数学、英语分别存储在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)
python_如何在一个for循环中迭代多个可迭代对象?的更多相关文章
- python 如何在一个for循环中遍历两个列表
是我在看<笨方法学python>过程中发现有一行代码看不懂--" for sentence in snippet, phrase:",所以研究了半天,感觉挺有收获的.所 ...
- java,for循环中的穷举、迭代、冒泡例题
1.100以内与7相关的数 //100以内与7相关的数: public static void main1(String[] args) { for(int i=1;i<=100;i++){ i ...
- python如何在一个for循环中遍历多个列表
推荐使用python内置函数zip,它可以将x个y维列表变成一个zip对象,将zip对象拆包可以发现它变成了y个x维元组.我们还可以将这个对象变成一个元组或列表.如下所示: 如果是两个列表的zip,我 ...
- python中如何在一个for循环中遍历两个列表
`其实就是用zip把两个列表包装起来: for x, y in zip(list1, list2)
- 问题13:如何在for语句中迭代多个可迭代的对象
from random import randint a1 = [randint(10, 50) for _ in range(5)] a2 = [randint(10, 50) for _ in r ...
- 循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate)的区别
表示“重复”这个含义的词有很多, 比如循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate). 循环算是最基础的概念, 凡是重复执行一段代码, 都可以称 ...
- JS的splice()方法在for循环中使用可能会遇到的坑
在写JS代码时,我们常常使用 splice 函数来删除数组中的元素,因为 splice 函数会直接对数组进行修改,从而不需再自己写一个算法来移动数组中的其他元素填补到被删除的位置.splice 功能十 ...
- 003_循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate)的区别
表示“重复”这个含义的词有很多, 比如循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate). 循环算是最基础的概念, 凡是重复执行一段代码, 都可以称 ...
- (转)JS的splice()方法在for循环中的使用问题
在写JS代码时,我们常常使用 splice 函数来删除数组中的元素,因为 splice 函数会直接对数组进行修改,从而不需再自己写一个算法来移动数组中的其他元素填补到被删除的位置.splice 功能十 ...
随机推荐
- 如何压缩UUID长度?
java中UUID的toString方法,生成的uuid是36位了,在项目中,有时候会显的过长,占用空间比较多,如何能够压缩存储下,又能够保证uuid的唯一性呢? 一. 思路 看源码后,发现UUID的 ...
- 【次小生成树】bzoj1977 [BeiJing2010组队]次小生成树 Tree
Description 小 C 最近学了很多最小生成树的算法,Prim 算法.Kurskal 算法.消圈算法等等. 正当小 C 洋洋得意之时,小 P 又来泼小 C 冷水了.小 P 说,让小 C 求出一 ...
- 自定义注解,andjdk提供的元注解
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface FruitN ...
- Memory Map
计算机最重要的功能单元之一是Memory.Memory是众多存储单元的集合,为了使CPU准确地找到存储有某个信息的存储单元,必须为这些单元分配一个相互区别的“身份证号”,这个“身份证号”就是地址编码. ...
- Jquery_基础(三) ajax与json
什么是ajax? AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. ...
- 洛谷 P1471 方差
洛谷 P1471 方差 题目背景 滚粗了的HansBug在收拾旧数学书,然而他发现了什么奇妙的东西. 题目描述 蒟蒻HansBug在一本数学书里面发现了一个神奇的数列,包含N个实数.他想算算这个数列的 ...
- hihoCoder1498-Diligent Robots
#1498 : Diligent Robots Time Limit:10000ms Case Time Limit:1000ms Memory Limit:256MB Description The ...
- Codeforces Round #300(Div. 2)-538A.str.substr 538B.不会 538C.不会 。。。
A. Cutting Banner time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- HDU-5157Harry and magic string
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5157 先从后往前插点,在构造回文树时,让cnt[i]+=cnt[fail[i]],然后维护一个后缀和a. ...
- SG 函数 S-Nim
http://poj.org/problem?id=2960 S-Nim Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 34 ...