字典是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 : 85
Adam : 95
Bart : 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.0
for k,v in d.items():
sum+=v
print k,':',v
print 'average',':',sum/len(d)