對乙個集合,無論有無序,還可以依次取出集合的每乙個元素集合
型別有序
list、stuple、str、unicode
無序set
無序並且具有key-value
dict
迭代在python中,可以說就是for迴圈,但是迭代又與一般的下標訪問陣列不同,前者只關心迭代結果,不關心內部的實現
可取得索引,用到enumerate()函式,按照自己定義索引輸出,也可以用zip()函式
#enumerate()函式,可以把['a','b','c']變成[(0,'a'),(1,'b'),(2,'c')]
#可以發現,enumerate()函式把1個元素變成了2個元素,所以需要兩個索引接收,例:
for index,name in enumerate(l)
print index,'-',name
#zip()函式,可以把2個list變為1個list,例:
print zip([1,2,3],['a','b','c'])
#列印返回 [(1,'a'),(2,'b'),(3,'c')]
#例:#從0開始索引,用enumerate():
for index,name in enumerate(l):
print index,'-',name
#從1開始索引,用zip():
for index,name in zip(range(1,len(l)+1),l):
print index,'-',name
#方法一:
#使用dict.values(),可以把dict轉換為乙個包含所有value的list
#例:d=
for v in dict.values():
print v
#方法二:
#使用itervalues(),效果與values相同
#例:for v in dict.itervalues():
print v
!上述兩種方法有什麼不同?1.values() 方法實際上把乙個 dict 轉換成了包含 value 的list。
2. 但是itervalues() 方法不會轉換,它會在迭代過程中依次從 dict 中取出 value,
所以 itervalues() 方法比 values() 方法節省了生成 list 所需的記憶體。
3. 列印itervalues() 發現它返回乙個 < dictionary-valueiterator > 物件,
因為在python中,for 迴圈可作用的迭代物件遠不止list,tuple,str,unicode,dict等,
任何可迭代物件都可以作用於for迴圈,而內部如何迭代我們通常並不用關心。
#方法一:
#使用items(),返回乙個list,包含tuple的list
#方法二:
#使用iteritems(),不用轉換為list,直接迭代給出tuple
#例:d=
sum=0.0
for key,value in d.iteritems():
sum=sum+value
print key,'-',value
print sum
Python入門(六) 迭代
1 迭代的概念 在python中,如果給定乙個list或tuple,我們可以通過for迴圈來遍歷這個list或tuple,這種遍歷我們成為迭代 iteration 在python中,迭代是通過 for in 來完成的。迭代操作就是對於乙個集合,無論該集合是有序 還是無序,我們用 for 迴圈總是可以...
python迭代器入門
迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。可以使用 hasattr 判斷物件是否是 可迭代的 hasattr str iter true使用內建函式 iter 定義迭代器物件。lst 1 2,3 4 iter ls...
python迭代器使用 Python迭代器的用法
我們在前面使用過語句 for x in列表物件 這就表示列表物件是可迭代的 iterable 那麼如何判斷某個物件是否可迭代呢?答案是可以使用collections.iterable類來判斷。如下面的 所示,列表是可迭代的,整數是不可迭代的,字串是可迭代的。from collections impo...