摘要:在最左側(cè)添加元素彈出左側(cè)的元素和傳統(tǒng)的相比,當所選擇的不存在時可以返回一個默認值。使用技巧以及注意事項注意的排序是根據(jù)輸入的的順序進行排序。是一個簡單的計數(shù)器可用于統(tǒng)計字符出現(xiàn)個數(shù)等。
0.前置說明
1.運行環(huán)境:Win7虛擬機、python2.7(anacoda版)
2.本文大部分內(nèi)容引用此參考文獻并極力推薦根據(jù)此人博客學習python:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fa...
1.namedtuple這個函數(shù)的意義在于創(chuàng)建一個容易讓人理解的元組數(shù)據(jù)結(jié)構(gòu)(tuple),
In [1]: from collections import namedtuple In [2]: name = namedtuple("name",["first","second"]) In [3]: n = name("Mr","ZONT") In [4]: n.first Out[4]: "Mr" In [5]: n.second Out[5]: "ZONT"使用技巧以及注意事項
注意namedtuple的第一個參數(shù)真的是表示這個結(jié)構(gòu)的name(這個例子舉的比較挫),請看以下代碼,能更好理解.
In [14]: name = namedtuple("wahaha",["first","second"]) In [15]: name.__name__ Out[15]: "wahaha"
新建的tuple是原來tuple的子類
In [18]: n = name("Mr","ZONT") In [19]: isinstance(n,name) Out[19]: True In [20]: isinstance(n,tuple) Out[20]: Truedeque
deque是list的進化版,可以在兩頭添加和刪除元素,適合用于隊列和棧。
In [21]: from collections import deque In [22]: d = deque(["r", "Z", "O"]) In [24]: d.append("N") In [25]: d.appendleft("M") #在最左側(cè)添加元素 In [26]: d Out[26]: deque(["M", "r", "Z", "O", "N"]) In [27]: d.append("T") In [28]: d Out[28]: deque(["M", "r", "Z", "O", "N", "T"]) In [29]: d.pop() Out[29]: "T" In [30]: d Out[30]: deque(["M", "r", "Z", "O", "N"]) In [31]: d.popleft() #彈出左側(cè)的元素 Out[31]: "M" In [32]: d Out[32]: deque(["r", "Z", "O", "N"])defaultdict
和傳統(tǒng)的dict相比,當所選擇的key不存在時,可以返回一個默認值。
In [33]: from collections import defaultdict In [35]: d = defaultdict(lambda:"NOKEY") In [36]: d["k"] = 1 In [37]: d["k"] Out[37]: 1 In [38]: d["d"] Out[38]: "NOKEY"使用技巧以及注意事項
注意defaultdict里面的參數(shù)必須是以函數(shù)形式傳入的,除了用上文的匿名函數(shù)還可以用普通函數(shù),如:
In [39]: def test(): ....: return "hello" ....: In [41]: d = defaultdict(test) In [43]: d["l"] Out[43]: "hello"OrderedDict
OrderedDict比傳統(tǒng)的dict的優(yōu)越性在于,其key是有順序的。
In [49]: o = OrderedDict([("100",0),("10",5),("X","Z")]) In [51]: o.keys() Out[51]: ["100", "10", "X"]使用技巧以及注意事項
注意OrderedDict的排序是根據(jù)輸入的key的順序進行排序。
CounterCounter是一個簡單的計數(shù)器,可用于統(tǒng)計字符出現(xiàn)個數(shù)等。
In [52]: from collections import Counter In [54]: c = Counter("sdugvikbvqerhasasdasds") In [55]: c["a"] Out[55]: 3 In [56]: c["d"] Out[56]: 3 In [57]: c["s"] Out[57]: 5
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/37586.html
摘要:小總結(jié)標準庫里的所有映射類型都是利用來實現(xiàn)只有可散列的數(shù)據(jù)類型才能用作這些映射里的鍵值不用字典推導用處理找不到的鍵找不到鍵返回某種默認值底層是與調(diào)用實現(xiàn)的字典插入更新原理其他大多數(shù)映射類型都提供了兩個很強大的方法和。 字典和集合 標準庫里的所有映射類型都是利用 dict 來實現(xiàn)的只有可散列的數(shù)據(jù)類型才能用作這些映射里的鍵(值不用) 可散列 一個對象是可散列的 它的散列值是不變的 對象...
摘要:介紹底層是使用存儲元素的,所以它并不是使用來存儲元素的。最簡單的方式就是判斷是否中的元素都在中,中的元素是否都在中,也就是兩次兩層循環(huán)。其實,并不需要。標記某個元素是否找到過,防止重復這個位置沒找到過才比較大小 介紹 CopyOnWriteArraySet底層是使用CopyOnWriteArrayList存儲元素的,所以它并不是使用Map來存儲元素的。 但是,我們知道CopyOnWri...
閱讀 3197·2021-11-25 09:43
閱讀 3408·2021-11-11 16:54
閱讀 823·2021-11-02 14:42
閱讀 3742·2021-09-30 09:58
閱讀 3664·2021-09-29 09:44
閱讀 1279·2019-08-30 15:56
閱讀 2097·2019-08-30 15:54
閱讀 2985·2019-08-30 15:43