iter() 是python中的迭代器,不太使用,下面展示兩種功能。
1.用於簡單迭代
in [53]: a
out[53]: [1, 2, 3, 4, 5, 6]
in [54]: b = iter(a)
in [55]: list(b)
out[55]: [1, 2, 3, 4, 5, 6]
in [57]: type(b)
out[57]: list_iterator
2.一組一組迭代
in [47]: a = [1, 2, 3, 4, 5, 6]
...: b = zip(*([iter(a)]*2))
in [48]: b
out[48]: in [49]: list(b)
out[49]: [(1, 2), (3, 4), (5, 6)]
第乙個其實用range(x)就可以代替,第二個方法方便解包,因為zip()功能十分強大,比如我最近遇到的zip()生成字典。如下:
in [58]: keys = ['a', 'b', 'c']
...: values = [1, 2, 3]
...: dictionary = dict(zip(keys, values))
in [59]: dictionary
out[59]:
當然,需要注意的是,zip這個函式對於兩個不一樣長的list,最終會擷取多餘的長度,並且重複的會用最後一次的佔位,這個可以判斷是否有重複元素。
# list不一樣長
in [60]: keys = ['a', 'b', 'c','d']
...: values = [1, 2, 3]
...: dictionary = dict(zip(keys, values))
...:
in [61]: dictionary
out[61]:
# list 中含有相同元素
in [63]: keys = ['a', 'a', 'c']
...: values = [1, 2, 3]
...: dictionary = dict(zip(keys, values))
...:
in [65]: dictionary
out[65]:
java無重集合Set與迭代器Iterator
set介面 t型元素的集合,不允許包含相等元素 int size 返回集合的元素個數。boolean isempty 如果集合為空,則返回true.boolean contains object o 如果集合包含與o相等的元素,則返回true.boolean containsall collecti...
Python 的迭代器與zip詳解
目錄 首先丟擲乙個困擾本人許久的問題 nums 1,2,3,4,5,6 numsiter iter nums for in zip numsiter 3 print print list numsiter 則控制台輸出如何?1.對於支援迭代的集合物件,可以建立其迭代器物件。迭代器物件儲存了可迭代物件...
C STL應用與實現 16 迭代器綜述
本系列文章的目錄在這裡 目錄.通過目錄裡可以對stl總體有個大概了解 本文介紹了stl中的迭代器的概念和五種類別的迭代器 output iterator,input iterator,forward iterator,bidirectional iterator,random access iter...