iter a 2 迭代器與zip()應用

2021-08-28 07:12:04 字數 1231 閱讀 3192

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...