成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python 學(xué)習(xí)筆記 2 collections集合介紹

jifei / 1633人閱讀

摘要:在最左側(cè)添加元素彈出左側(cè)的元素和傳統(tǒng)的相比,當(dāng)所選擇的不存在時(shí)可以返回一個(gè)默認(rèn)值。使用技巧以及注意事項(xiàng)注意的排序是根據(jù)輸入的的順序進(jìn)行排序。是一個(gè)簡(jiǎn)單的計(jì)數(shù)器可用于統(tǒng)計(jì)字符出現(xiàn)個(gè)數(shù)等。

0.前置說明

1.運(yùn)行環(huán)境:Win7虛擬機(jī)、python2.7(anacoda版)

2.本文大部分內(nèi)容引用此參考文獻(xiàn)并極力推薦根據(jù)此人博客學(xué)習(xí)python:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fa...

1.namedtuple

這個(gè)函數(shù)的意義在于創(chuàng)建一個(gè)容易讓人理解的元組數(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"

使用技巧以及注意事項(xiàng)

注意namedtuple的第一個(gè)參數(shù)真的是表示這個(gè)結(jié)構(gòu)的name(這個(gè)例子舉的比較挫),請(qǐng)看以下代碼,能更好理解.

In [14]: name = namedtuple("wahaha",["first","second"])
In [15]: name.__name__
Out[15]: "wahaha"

新建的tuple是原來(lái)tuple的子類

In [18]: n = name("Mr","ZONT")
In [19]: isinstance(n,name)
Out[19]: True
In [20]: isinstance(n,tuple)
Out[20]: True

deque

dequelist的進(jìn)化版,可以在兩頭添加和刪除元素,適合用于隊(duì)列和棧。

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相比,當(dāng)所選擇的key不存在時(shí),可以返回一個(gè)默認(rèn)值。

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"
使用技巧以及注意事項(xiàng)

注意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"]
使用技巧以及注意事項(xiàng)

注意OrderedDict的排序是根據(jù)輸入的key的順序進(jìn)行排序。

Counter

Counter是一個(gè)簡(jiǎn)單的計(jì)數(shù)器,可用于統(tǒng)計(jì)字符出現(xiàn)個(gè)數(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/37586.html

相關(guān)文章

  • 流暢的python讀書筆記-第三章Python 字典與集合

    摘要:小總結(jié)標(biāo)準(zhǔn)庫(kù)里的所有映射類型都是利用來(lái)實(shí)現(xiàn)只有可散列的數(shù)據(jù)類型才能用作這些映射里的鍵值不用字典推導(dǎo)用處理找不到的鍵找不到鍵返回某種默認(rèn)值底層是與調(diào)用實(shí)現(xiàn)的字典插入更新原理其他大多數(shù)映射類型都提供了兩個(gè)很強(qiáng)大的方法和。 字典和集合 標(biāo)準(zhǔn)庫(kù)里的所有映射類型都是利用 dict 來(lái)實(shí)現(xiàn)的只有可散列的數(shù)據(jù)類型才能用作這些映射里的鍵(值不用) 可散列 一個(gè)對(duì)象是可散列的 它的散列值是不變的 對(duì)象...

    lvzishen 評(píng)論0 收藏0
  • [學(xué)習(xí)筆記-Java集合-12] Set - CopyOnWriteArraySet源碼分析

    摘要:介紹底層是使用存儲(chǔ)元素的,所以它并不是使用來(lái)存儲(chǔ)元素的。最簡(jiǎn)單的方式就是判斷是否中的元素都在中,中的元素是否都在中,也就是兩次兩層循環(huán)。其實(shí),并不需要。標(biāo)記某個(gè)元素是否找到過,防止重復(fù)這個(gè)位置沒找到過才比較大小 介紹 CopyOnWriteArraySet底層是使用CopyOnWriteArrayList存儲(chǔ)元素的,所以它并不是使用Map來(lái)存儲(chǔ)元素的。 但是,我們知道CopyOnWri...

    Lin_YT 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<