python 多个列表_Python同时迭代多个列表

没有人会记得死的东西,所以要活下去,咬牙切齿的活下去!

import sys

from itertools import chain

from random import randint

reload(sys)

sys.setdefaultencoding('utf-8')

案例一

要求:一个班级有10个人,考试语数外三门,要求打印每个同学的每一门成绩(同一行显示)并且统计总分数。

困惑:多重迭代?

分析:使用zip()传入三个列表,然后遍历即可。

c = [randint(10,100) for _ in range(10)]

m = [randint(10,100) for _ in range(10)]

e = [randint(10,100) for _ in range(10)]

# c,m,e三张列表代表了不同的分数

for cc,mm,ee in zip(c,m,e):

t = int(cc) + int(mm) + int(ee)

print cc,mm,ee

print 'SCORE:' + str(t)

案例二

要求:一个班级有10个人,考试语数外三门,要求统计分数高于60分的人数。

困惑:创建一个新的列表,然后分三次循环并且判断?

分析:使用chain()何以合并多个不同的列表,enumeratr()可以按照一个一定的顺序输出迭代对象和对象的序号(说教无益,上代码。)

chain()的使用方法for x in chain(['A','B','C'],[1,2,3]):print x

运行结果:

A

B

C

1

2

3

enumerate()的用法c = [randint(10,100) for _ in range(10)]

for x,v in enumerate(c):print x,v

运行结果:

0 43

1 96

2 96

3 86

4 68

5 99

6 21

7 58

8 33

9 88

当然还有一种写法和使用enumerate有异曲同工之妙。

c = [randint(10, 100) for _ in range(10)]

for i in range(len(c)):

print i,c[i]

运行结果:

0 19

1 31

2 27

3 32

4 20

5 84

6 75

7 96

8 88

9 87

代码实现

c = [randint(10,100) for _ in range(10)]

m = [randint(10,100) for _ in range(10)]

e = [randint(10,100) for _ in range(10)]

count = 0

for x in chain(c,m,e):

#其中cme的人数不一致也可以用

if x >60:

count +=1

print count

运行结果:

16

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值