美文网首页
3-6 如何在一个for语句中迭代多个可迭代对象?

3-6 如何在一个for语句中迭代多个可迭代对象?

作者: Diolog | 来源:发表于2019-02-09 21:00 被阅读0次

    实际案例:

    • 某班学生期末考试成绩,语文、数学、英语分别存储在3个列表中,同时迭代三个列
      表,计算每个学生的总分.(并行)
    • 某年级有4个班,某次考试每班英语成绩分别存储在4个列表中,依次迭代每个列表,统计全学年成绩高于90分的人.(串行)

    首先创建测试数据:

    from random import randint
    chinese = [randint(60,100) for _ in range(40)]
    math= [randint(60,100) for _ in range(40)]
    english = [randint(60,100) for _ in range(40)]
    

    解决方式:

    • 并行:使用内置函数zip,它能将多个可迭代对象合并,每次迭代返回一个元组
    • 串行:使用标准库中的itertools.chain,它能将多个可迭代对象连接

    并行:

    total = []
    for c,m,e in zip(chinese,math,english):
      total.append(c+m+e)
    

    串行:

    e1= [randint(60,100) for _ in range(40)]
    e2= [randint(60,100) for _ in range(40)]
    e3= [randint(60,100) for _ in range(40)]
    e4= [randint(60,100) for _ in range(40)]
    
    from itertools import chain 
    count = 0
    for i in chain(e1,e2,e3,e4):
      if i > 90:
        count+=1
    

    相关文章

      网友评论

          本文标题:3-6 如何在一个for语句中迭代多个可迭代对象?

          本文链接:https://www.haomeiwen.com/subject/xuuzsqtx.html