【慕课网】如何在一个for语句中迭代多个可迭代对象?

本文通过两个示例介绍如何在Python中使用并行和串行迭代处理多个列表数据。第一个示例展示了如何计算学生的总分,第二个示例说明了如何统计年级内英语成绩高于90分的人数。
# 如何在一个for语句中迭代多个可迭代对象?
# 1 :某班学生期末考试成绩,语文,数学,英语 分别存储在3个列表中,同时迭代三个列表,计算每个学生的总分(并行)
# 2:某年级有4个班,某次考试每班英语成绩 分别存储在4个列表中,依次迭代每个列表,统计全学年成绩高于90分数人数(串行)
from random import  randint
from itertools import chain



def main():
    chinese = [randint(60, 100) for _ in range(40)]
    math = [randint(60, 100) for _ in range(40)]
    enlish = [randint(60, 100) for _ in range(40)]
    # 有局限性 如果是生成器的话就无法使用
    for i in range(len(math)):
        sum=chinese[i]+math[i]+enlish[i]
        # print(sum)
    # 可以通过zip的方式尝试
    z=zip([1,2,3,7],('a','b','c','d'),(7,8,9,10),'a1232')
    print(list(z))
    total=[]
    for c,m,e in zip(chinese,math,enlish):
        total.append(c+m+e)
    print(total)


    pass


def main2():
    e1 = [randint(60, 100) for _ in range(45)]
    e2 = [randint(60, 100) for _ in range(42)]
    e3 = [randint(60, 100) for _ in range(60)]
    e4 = [randint(60, 100) for _ in range(40)]
    # print(list(chain([1,2,3,4],('a','b','c'))))

    # for x in chain([1,2,3,4],('a','b','c')):
    #     print(x)
    count=0
    for s in chain(e1,e2,e3,e4):
        if(s>90):
            count+=1
    print(count)

    pass


main2()





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值