chapter 7,dictionary
dictionary: 字典是經過這樣的算法來比較的: 首先是字典的大小,而後是鍵,最
後是值。
dictionary內建函數和工廠函數:
str(),cmp(),dict()
len(),hash()
字符串和數字能夠做爲字典的key
,列表,dict都不能夠作字典的key值。
dict2.keys()
dict2.values()
dict2.items()
字典類型的方法:
dict.clear() 刪除a字
iqf's
典中全部元素'j;tglugvmlhljprhu[pufovkhf;i;pt /
dict.iter()
dict.setdefault(key,
default=None)e
和方法set()類似,若是字典中不存在key 鍵,由dict[key]=default 爲
它賦值。
update()方法能夠用來將一個字典的內容添加到另一個字典中
clear()方法能夠用來刪除字典中的全部的條目
copy() 方法返回一個字典的副本。注意這只是淺複製
setdefault()是自 2.0 纔有的內建方法, 使得代碼更加簡潔,它實現了經常使用的語法: 檢查字典
中是否含有某鍵。 若是字典中這個鍵存在,你能夠取到它的值。 若是所找的鍵在字典中不存在,
你能夠給這個鍵賦默認值並返回此值。這正是執行setdefault()方法的目的:
鍵必須是可哈希的
全部不可變的類型都是可哈希的,
一個要說明的是問題是數字:
值相等的數字表示相同的鍵。換句話來講,整型數字 1 和 浮點數 1.0 的哈希值是相同的,即它們
是相同的鍵
集合;
用各類集合內建的方法和操做符添加和刪除集合的成員:
s.add('z')
s.update('pypi')
s.remove('p')
s -= set('pypi') == s=s-set('pypi')
等價/不等價被用於在相同或不一樣的集合之間作比較。兩個集合相等是指,對每一個集合而言,當
且僅當其中一個集合中的每一個成員同時也是另外一個集合中的成員。。集合等價/不等價與集合的類型或集合成員的順序無關
聯合( | )新集合, 該集合中的每一個元素都至少是其中一個集合的成員
交集( & )新集合, 該集合中的每一個元素同時是兩個集合中的成員
差補/相對補集( – ), 兩個集合(s和t)的差補或相對補集是指一個集合C,該集合中的元素,只屬於集合s,而不屬
於集合t。差符號有一個等價的方法,difference().
對稱差分( ^ ) C,該集合中的元素,只能是屬於集合s 或者集合t
的成員,不能同時屬於兩個集合。對稱差分有一個等價的方法,symmetric_difference().
若是左右兩個操做數的類型相同,既都是可變集合或不可變集合, 則所產生的結果類型是相同
的,但若是左右兩個操做數的類型不相同(左操做數是set,右操做數是frozenset,或相反狀況則所產生的結果類型與左操做數的類型相同,上例中能夠證實這一點。還要注意,加號不是集合類
型的運算符:
集合類型操做符(僅適用於可變集合)
(Union) Update ( |=),這個更新方法從已存在的集合中添加(可能多個)成員,此方法和update()等價.
保留/交集更新( &=),保留(或交集更新)操做保留與其餘集合的共有成員。此方法和intersection_update()等價.
差更新 ( –= ),對集合s 和t 進行差更新操做s-=t,差更新操做會返回一個集合,該集合中的成員是集合s去
除掉集合t 中元素後剩餘的元素。此方法和difference_update()等價.
對稱差分更新( ^= ),對集合s 和t進行對稱差分更新操做(s^=t),對稱差分更新操做會返回一個集合,該集合中的成
員僅是原集合s 或僅是另外一集合t中的成員。此方法和symmetric_difference_update()等價.
內建函數:
工廠函數:set()和frozenset()工廠函數分別用來生成可變和不可變的集合