摘要:先來看一下模塊中的方法本章我們只介紹除以外的方法,至于這三個方法,我們用于繼承他們,而實現你想要的結構。
先來看一下collections模塊中的方法:
__all__ = ["deque", "defaultdict", "namedtuple", "UserDict", "UserList", "UserString", "Counter", "OrderedDict", "ChainMap"]
本章我們只介紹除UserDict/UserList/UserString以外的方法,至于這三個方法,我們用于繼承他們,而實現你想要的結構。
namedtuple:用于創建具有命名字段的tuple子類的工廠函數
#比如我們想構造一個紙牌類 Card=namedtuple("Card",[rank,suit]) #等同于namedtuple("Card",(rank,suit)) c1=Card("A","紅桃") c2=Card("K","黑桃") print(c1.rank) #A print(c1.suit) #紅桃 print(c1.rank) #B print(c1.suit) #黑桃 #改變對象的屬性,可以使用 對象._replace(屬性=值)方法更改已創建的對象的值 #_replace可以傳入一個dict
deque:list-like容器,兩端都有快速追加和彈出類,用于創建多個映射的單個視圖(線程安全)
#其內部是一個單字母數組 a=deque("str") a.appendleft("a") #在頭部插入數據 a.append("b") #在尾部插入數據 a.count("a") #查看字符出現的次數 a.insert(2,"y") #根據索引插入值 a.clear() #清空雙端隊列
defaultdict:多值字典
dict1=defaultdict(list/dict/set/lambda :"None") dict1["a"].add(1) #以set為例 print(dict1) #defaultdict(, {"a": {1}}) print(dict1["b"]) #None,這就是lambda的作用
OrderedDict:保持元素被插入的順序,結構是一個雙向鏈表
#python3下dict默認也是有序的,但是方法有限 od=OrderedDict([("name","jim"),("age",19),("sex","男")]) od.setdefault("high",178) #添加一組數據,或者使用od["high"]=178 od.move_to_end("name") #將name組放置末尾 for i in od.items(): print(i) #("name", "jim") #("age", 19) #("sex", "男") #("high", 178)
Counter:計數器,在底層中為一個字典
c=Counter() #可以直接Counter("測shishiyong"),這樣就不用循環 for i in "測shishiyong": c[i]=c[i]+1 print(c) #Counter({"s": 2, "h": 2, "i": 2, "測": 1, "y": 1, "o": 1, "n": 1, "g": 1}) print(c.most_common(3)) #出現次數最多的三個元素 #[("s", 2), ("h", 2), ("i", 2)] #c["元素"] 查看元素的出現次數 #c.update(list/str) 可以增加元素 #Counter可以使用+/-進行運算
ChainMap:合并多個字典
dict1={"name":"jim","age":21} dict2={"high":175,"gender":"男"} new_dict=ChainMap(dict1,dict2) print(new_dict) #ChainMap({"name": "jim", "age": 21}, {"high": 175, "gender": "男"}) #前dict中存在的鍵值對將會使后面dict中的鍵值對不會被重新合并,也可以使用update()方法對 #原字典更新新字典到里面,不過和直接合并的區別是,update會重新創建新字典,原字典更新刪除 #數據不會影響新字典
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42807.html
摘要:掛機科了次使用這個結構,匿名函數就有了自己的執行環境或閉包,然后我們立即執行。注意,匿名函數的圓括號是必需的,因為以關鍵字開頭的語句通常被認為是函數聲明請記住,中不能使用未命名的函數聲明。 這是專門探索 JavaScript 及其所構建的組件的系列文章的第 20 篇。 想閱讀更多優質文章請猛戳GitHub博客,一年百來篇優質文章等著你! 如果你錯過了前面的章節,可以在這里找到它們: ...
摘要:它通過數據模型進行鍵值綁定及事件處理,通過模型集合器提供一套豐富的用于枚舉功能,通過視圖來進行事件處理及與現有的通過接口進行交互。 本人兼職前端付費技術顧問,如需幫助請加本人微信hawx1993或QQ345823102,非誠勿擾 1.為初學前端而不知道怎么做項目的你指導 2.指導并扎實你的JavaScript基礎 3.幫你準備面試并提供相關指導性意見 4.為你的前端之路提供極具建設性的...
摘要:一種解決問題的通用方法,我們叫做模式。事件委托當這個視圖后,頁面上的就會綁定事件,只要點擊,就會執行方法。同時,頁面上的元素也會綁定事件。,套入模板后變成,最后添加到頁面上。 Backbone是一個實現了web前端mvc模式的js框架。 一種解決問題的通用方法,我們叫做模式。 設計模式:工廠模式,適配器模式,觀察者模式等,推薦js設計模式這本書。設計模式是一種思想。 框架模式:MVC,...
摘要:這里提示一下,有些函數對隊列進行操作,但返回值是,比如反轉隊列,將隊列中元素向右移位,尾部的元素移到頭部。比如字典中的鍵映射多個值輸出結果如下三用途創建命名字段的元組。四用途統計可哈希的對象。 本文將詳細講解collections模塊中的所有類,和每個類中的方法,從源碼和性能的角度剖析。 一個模塊主要用來干嘛,有哪些類可以使用,看__init__.py就知道 This module i...
閱讀 685·2021-11-25 09:43
閱讀 2953·2021-11-24 10:20
閱讀 1002·2021-10-27 14:18
閱讀 1076·2021-09-08 09:36
閱讀 3382·2021-07-29 14:49
閱讀 1784·2019-08-30 14:07
閱讀 2937·2019-08-29 16:52
閱讀 3049·2019-08-29 13:12