迭代字典中的key和value

来源:互联网 发布:联通 套餐 4g数据副卡 编辑:程序博客网 时间:2024/06/01 21:12

字典是python中十分重要的一个内容。
今天我们来谈谈,在一个 for 循环中,能否同时迭代 key和value?当然可以咯。

dict 对象的 items() 方法返回的值:

>>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }>>> print d.items()[('Lisa', 85), ('Adam', 95), ('Bart', 59)]>>> for key,value in d.items():    print key,':',value

items() 方法把dict对象转换成了包含tuple的list,我们对这个list进行迭代,可以同时获得key和value:

Lisa : 85Adam : 95Bart : 59>>> 

和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存

我们接下来实现一个复杂一些的需求:
请根据dict:

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }

打印出 name : score,最后再打印出平均分 average : score。

我们可以这样实现:

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }for key, value in d.iteritems():    print "%s : %d" % (key,value)L=(sum(d.itervalues())/float(len(d)))print '%.2f'%L

或者:

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }sum=0.0for k,v in d.items():    sum+=v    print k,':',vprint 'average',':',sum/len(d)
0 0