python iter,迭代器&dict,字典詳解


可以直接作用於for循環的對象統稱為可迭代對象(Iterable)。

可以被next()函數調用並不斷返回下一個值的對象稱為迭代器(Iterator)。

所有的Iterable均可以通過內置函數iter()來轉變為Iterator。

迭代器為類序列對象提供了一個類序列的接口。python的迭代無縫地支持序列對象,而且它還允許程序員迭代非序列類型,包括用戶定義的對象。迭代器用起來很靈巧,你可以迭代不是序列但表現處序列行為的對象,例如字典的鍵、一個文件的行,等等。迭代器的作用如下:

>>> i=iter('abcd')
>>> print i.next()
a
>>> print i.next()
b
>>>print i.next()
c

  

s = {'one':1,'two':2,'three':3}
print s
{'three': 3, 'two': 2, 'one': 1}
>>> m = iter(s)
>>> print m.next()
three
>>> print m.next()
two
>>> print m.next()
one

dict {'key':value,'key':value}

查詢可以用get方法 ,也可以直接通過key查詢,不過這樣如果不存在這個key將會報錯,而get會給出None 

可以直接添加或者更改dict,dict('key')=value

可使用pop方法 dict.pop(key[,default]),通過key值刪除dict內元素,並返回被刪除key對應的value。若key不存在,且default值未設置,則返回KeyError異常

可使用clear方法dict.clear()清空dict

values() / itervalues() 方法:返回dict 的value值,

 itervalues() 方法替代 values() 方法,迭代效果完全一樣。而 itervalues() 方法不會轉換,它會在迭代過程中依次從 dict 中取出 value,

所以 itervalues() 方法比 values() 方法節省了生成 list 所需的內存。

items()方法

>>> s = {'one':1,'two':2,'three':3}
>>> d = items(s)
>>> d=s.items()
>>> print d
[('three', 3), ('two', 2), ('one', 1)]

和 values() 有一個 itervalues() 類似, items() 也有一個對應的 iteritems()

iteritems() 不把dict轉換成list,而是在迭代過程中不斷給出 tuple,所以, iteritems() 不占用額外的內存

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM