1.collections中的abc
collection是sized,iterable,container的子類
12.dict的常見用法from collections.abc import23
#45 a ={}
6true
1 a = ,2"3.dict的子類2":}34
#清空字典
5a.clear()67
#淺拷貝字典 淺拷貝雖然可以正常賦值,但是如果 my_dopy_dict 中的值進行了改變,則 a 中的值也會進行對應的改變
8 my_dopy_dict =a.copy()910
#深拷貝 深拷貝則是實實在在的在記憶體當中宣告了乙個新的變數
11import
copy
12 new_dict =copy.deepcopy(a)
1314
#get函式 dict.get(要查詢的key,如果沒找到對應key的內容返回的資料)
15print(a.get("
3",)) #
1617
#dict.fromkeys() 函式用於建立乙個新字典,以序列 seq 中元素做字典的鍵 seq可以是可迭代的,value 為字典所有鍵對應的初始值。
18 my_list = [1, 2, 3]
19 my_new_dict = dict.fromkeys(my_list, ) #
, 2: , 3: }
2021
#setdefault() 函式和 get()方法 類似,22#
如果鍵不存在於字典中,將會新增鍵並將值設為預設值。23#
如果存在,則將會返回該key對應的value
24 a.setdefault("
3", "
cc") #
a= , '2': , '3': 'cc'}
25print(a.setdefault("
2", "
cc")) #
返回2627#
update() 函式是合併兩個字典:把字典dict2的鍵/值對更新到dict裡。28#
如果字典b中有與a相同的key,則會把a中的key對應的value進行更新29#
如果字典b中有a中沒有的key,則a會將未有的key與value新增進去
30 b =
31a.update(b)
32print(a) #
, '2': 'dd', '3': 'cc'}
1class
mydict(dict):
2def
__setitem__
(self, key, value):
3 super().__setitem__(key, value * 2)45
6 my_dict = mydict(one=1)
7print(my_dict) #
不可以修改
8 my_dict["
one"] = 1
9print(my_dict) #
可以像c語言一樣修改
1from collections import
userdict23
4class
mydict(userdict):
5def
__setitem__
(self, key, value):
6 super().__setitem__(key, value * 5)78
9 my_dict = mydict(one=3)
10print(my_dict) #
呼叫重寫的__setitem__
11 my_dict["
one"] = 4
12print(my_dict) #
呼叫重寫的__setitem__
14.set和frozensetfrom collections import
defaultdict
23 my_dict = defaultdict(dict) #
dict的子類
4print(my_dict["
bobby
"]) #
{},不存在則返回{}
5pass
1 a = set('5.dict和set實現原理abcdee')
2 a.add('f'
)3print(a) #
4 another_set = set('
defgh')
5#新增資料
6a.update(another_set)
7print(a) #8#
集合的差集
9 re_set =a.difference(another_set)10#
減法實現於__ior__魔法函式
11 re_set2 = a -another_set12#
集合的交集&
13 re_set3 = a &another_set14#
集合的並集|
15 re_set4 = a |another_set
16print(re_set) #
17print(re_set2) #
18print(re_set3) #
19print(re_set4) #20#
也可以用if in判斷(實現於__contains__魔法函式)
21if'a
'inre_set:
22print('
a in re_set
') #
a in re_set
dist和set使用雜湊表儲存:
注意:dict的key以及set的value都必須是可以hash的
什麼是可以hash:不可變物件:str,frozenset,tuple以及自己實現了__hash__的類
dict的記憶體花銷大,但查詢速度快,自定義的物件或python內部的物件都是用dict包裝的
dict的儲存順序和元素新增順序有關
dict在新增資料時可能改變已有資料的順序
第六章 深入模板
django內建的模板引擎包含模板上下文 模板變數 標籤,過濾器 模板上下文 模板變數 變數值有檢視函式或檢視類傳遞所得 標籤 對變數進行控制輸出,例如判斷和迴圈控制等 過濾器 多變數進行操作處理。variable1 字串或整型 variable2 variable3 元組或列表 屬性 索引 dja...
mysql第六章 第六章 mysql日誌
第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...
python 第六章 字典
1.在python中,字典用放在花括號 中的一系列鍵 值對表示 tip 鍵 值對的排列順序與新增順序不同。python不關心鍵 值對的新增順序,而只關心鍵和值之間的關聯關係 2.在對字典遍歷的時候要記住加上.items 表示獲取字典的內容 3.title將獲取的字母首字母大寫 4.鍵 值,其中鍵代表...