了解一下python內(nèi)建模塊collections
在使用Python的過(guò)程中,一定是離不開(kāi)數(shù)據(jù)結(jié)構(gòu)的, 也就是List-列表,Tuples-元組,Dictionaries-字典。那實(shí)際應(yīng)用中我們更多的還是要去操作這些結(jié)構(gòu)里的數(shù)據(jù)。比如,在列表后面添加元素,那么就會(huì)用到append() 方法。那除了這些本身的操作方法之外,還有一個(gè)Python內(nèi)建模塊——collections,也提供了不少使用的方法,今天來(lái)捋一下。
一、Counter
這是一個(gè)計(jì)數(shù)器,我們可以用來(lái)方便的統(tǒng)計(jì)出一些元素出現(xiàn)的次數(shù),比如String、List、Tuples等等。
String
from collections import Counterc = Counter('HelloKitty')print(c)#運(yùn)行結(jié)果:Counter({’l’: 2, ’t’: 2, ’H’: 1, ’e’: 1, ’o’: 1, ’K’: 1, ’i’: 1, ’y’: 1})
List
from collections import Counterc = Counter(['蘋(píng)果', '櫻桃', 1, 1, 4, 4, 5])print(c)#運(yùn)行結(jié)果:Counter({1: 2, 4: 2, ’蘋(píng)果’: 1, ’櫻桃’: 1, 5: 1})
二、deque
我們很喜歡用list來(lái)存放數(shù)據(jù),因?yàn)榉浅5姆奖恪5莑ist的缺點(diǎn)也很明顯,如果你是按索引訪問(wèn)元素就很快,但是插入和刪除元素就很慢。當(dāng)然了,數(shù)據(jù)量小的時(shí)候肯定是感知不到的,只有當(dāng)數(shù)據(jù)量大的時(shí)候,你才會(huì)發(fā)現(xiàn)這個(gè)缺點(diǎn),因?yàn)閘ist是線性數(shù)據(jù)結(jié)構(gòu),比如插入這個(gè)動(dòng)作,需要把它后面的元素都挪一位。deque除了實(shí)現(xiàn)list的append()和pop()外,還提供了appendleft()和popleft(),這樣的話我們可以很方便的向著列表的另一頭,進(jìn)行添加和移除操作了。
from collections import dequedeque_list = deque([’a’, ’b’, ’c’, ’d’])deque_list.append(’蘋(píng)果’)deque_list.appendleft(’吃’)print(deque_list)#運(yùn)行結(jié)果:deque([’吃’, ’a’, ’b’, ’c’, ’d’, ’蘋(píng)果’])
三、OrderedDict
使用Python,大家自然知道Dict字典中的key是無(wú)序的。那如果你想要保持key的順序的話,用OrderedDict即可。
from collections import OrderedDictlist_a = [(1, '蘋(píng)果'), (2, '香蕉'), (3, '西瓜'), (4, '芒果')]order_dict = OrderedDict(list_a)print(order_dict)#運(yùn)行結(jié)果:D:Dailyλ python whatiscollections.pyOrderedDict([(1, ’蘋(píng)果’), (2, ’香蕉’), (3, ’西瓜’), (4, ’芒果’)])
如果有場(chǎng)景中需要使用到,可以試試這幾種用法。
以上就是了解一下python內(nèi)建模塊collections的詳細(xì)內(nèi)容,更多關(guān)于python collections的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. 解決Python數(shù)據(jù)可視化中文部分顯示方塊問(wèn)題2. python開(kāi)發(fā)一個(gè)解析protobuf文件的簡(jiǎn)單編譯器3. ASP編碼必備的8條原則4. python 根據(jù)列表批量下載網(wǎng)易云音樂(lè)的免費(fèi)音樂(lè)5. python中round函數(shù)保留兩位小數(shù)的方法6. python 基于AioHttp 異步抓取火星圖片7. 利用python+ffmpeg合并B站視頻及格式轉(zhuǎn)換的實(shí)例代碼8. Android實(shí)現(xiàn)儀表盤(pán)控件開(kāi)發(fā)9. Python基于traceback模塊獲取異常信息10. 深入理解JavaScript字節(jié)二進(jìn)制知識(shí)以及相關(guān)API
