摘要:在最左側添加元素彈出左側的元素和傳統的相比,當所選擇的不存在時可以返回一個默認值。使用技巧以及注意事項注意的排序是根據輸入的的順序進行排序。是一個簡單的計數器可用于統計字符出現個數等。
0.前置說明
1.運行環境:Win7虛擬機、python2.7(anacoda版)
2.本文大部分內容引用此參考文獻并極力推薦根據此人博客學習python:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fa...
1.namedtuple這個函數的意義在于創建一個容易讓人理解的元組數據結構(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的第一個參數真的是表示這個結構的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") #在最左側添加元素 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() #彈出左側的元素 Out[31]: "M" In [32]: d Out[32]: deque(["r", "Z", "O", "N"])defaultdict
和傳統的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里面的參數必須是以函數形式傳入的,除了用上文的匿名函數還可以用普通函數,如:
In [39]: def test(): ....: return "hello" ....: In [41]: d = defaultdict(test) In [43]: d["l"] Out[43]: "hello"OrderedDict
OrderedDict比傳統的dict的優越性在于,其key是有順序的。
In [49]: o = OrderedDict([("100",0),("10",5),("X","Z")]) In [51]: o.keys() Out[51]: ["100", "10", "X"]使用技巧以及注意事項
注意OrderedDict的排序是根據輸入的key的順序進行排序。
CounterCounter是一個簡單的計數器,可用于統計字符出現個數等。
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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/37586.html
摘要:小總結標準庫里的所有映射類型都是利用來實現只有可散列的數據類型才能用作這些映射里的鍵值不用字典推導用處理找不到的鍵找不到鍵返回某種默認值底層是與調用實現的字典插入更新原理其他大多數映射類型都提供了兩個很強大的方法和。 字典和集合 標準庫里的所有映射類型都是利用 dict 來實現的只有可散列的數據類型才能用作這些映射里的鍵(值不用) 可散列 一個對象是可散列的 它的散列值是不變的 對象...
摘要:介紹底層是使用存儲元素的,所以它并不是使用來存儲元素的。最簡單的方式就是判斷是否中的元素都在中,中的元素是否都在中,也就是兩次兩層循環。其實,并不需要。標記某個元素是否找到過,防止重復這個位置沒找到過才比較大小 介紹 CopyOnWriteArraySet底層是使用CopyOnWriteArrayList存儲元素的,所以它并不是使用Map來存儲元素的。 但是,我們知道CopyOnWri...
閱讀 3204·2021-11-25 09:43
閱讀 3415·2021-11-11 16:54
閱讀 842·2021-11-02 14:42
閱讀 3760·2021-09-30 09:58
閱讀 3670·2021-09-29 09:44
閱讀 1287·2019-08-30 15:56
閱讀 2105·2019-08-30 15:54
閱讀 2993·2019-08-30 15:43