1. 程式人生 > 程式設計 >Python values()與itervalues()的用法詳解

Python values()與itervalues()的用法詳解

dict 物件有一個 values() 方法,這個方法把dict轉換成一個包含所有value的list,這樣,我們迭代的就是 dict的每一個 value:

d = { 'Adam': 95,'Lisa': 85,'Bart': 59 }
print d.values()
# [85,95,59]
for v in d.values():
  print v
# 85
# 95
# 59

如果仔細閱讀Python的文件,還可以發現,dict除了values()方法外,還有一個 itervalues() 方法,用 itervalues() 方法替代 values() 方法,迭代效果完全一樣:

d = { 'Adam': 95,'Bart': 59 }
print d.itervalues()
# <dictionary-valueiterator object at 0x106adbb50>
for v in d.itervalues():
  print v
# 85
# 95
# 59

那這兩個方法有何不同之處呢?

1. values() 方法實際上把一個 dict 轉換成了包含 value 的list。

2. 但是 itervalues() 方法不會轉換,它會在迭代過程中依次從 dict 中取出 value,所以 itervalues() 方法比 values() 方法節省了生成 list 所需的記憶體。

3. 列印 itervalues() 發現它返回一個 物件,這說明在Python中,for 迴圈可作用的迭代物件遠不止 list,tuple,str,unicode,dict等,任何可迭代物件都可以作用於for迴圈,而內部如何迭代我們通常並不用關心。

任務

給定一個dict:

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

請計算所有同學的平均分。

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

sum = 0.0
i = 0
for s in d.itervalues():
  sum += s
  i += 1
print sum/i
#78.25

以上這篇Python values()與itervalues()的用法詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。