1) get()方法。 字典能夠直接用a[b]的方式訪問字典項,但若是b不存在時,會報異常。爲了不這種狀況,可使用get()方法來訪問字典項,a.get(b)當b存在時,結果和a[b]同樣,若是b不存在,不會報異常,而是返回None。除此以外,get()方法還能夠設置第二個參數,若是b不存在,能夠將第二個參數作爲默認值返回。
====================================
a = {}
a["a"] = "A"
print a["b"] #=> 異常
print a.get("b") #=> None
c = a.get("b") or "B" #=> c爲「B」,這更相似於咱們寫別的程序時 c = xxx || "B"的思路
c = a.get("b","B") #=> c爲「B」,在python中也可使用這樣的寫法。
====================================
2) 列表可使用pop()方法彈出最末尾的元素,也能夠經過pop(n)彈出指定索引的元素。而字典也有相似的用法。a.popitem()方法能夠彈出字典中的一個元素,但這個元素是隨機的,由於字典自己是無序的。a.pop(key)能夠彈出指定key的項,相似於列表的pop(n)。
3) update()方法。 update方法相似於yui的merge()和jQuery的extend()。合併兩個字典對象。
===================================
a = {"a":"A","b":"B"}
b = {"c":"C","b":"ABC"}
a.update(b)
print a #=> {"a":"A","b":"ABC","c":"C"}
===================================
4) items()和iteritems()方法都廣泛用於for循環的迭代中,不一樣的是items()返回的是列表對象,而iteritems()返回的是迭代器對象。二者的用法差很少,但iteritems()的性能更快。
5) 字典有本身的copy()方法,但它只是淺複製,若是用深複製的話,須要使用copy模塊的deepcopy方法。(怎麼跟js一個毛病?我靠,是誰借鑑了誰的思路嗎?)python
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<app
#字典的添加、刪除、修改操做
dict = {"a" : "apple", "b" : "banana", "g" : "grape", "o" : "orange"}
dict["w"] = "watermelon"
del(dict["a"])
dict["g"] = "grapefruit"
print dict.pop("b")
print dict
dict.clear()
print dict性能
#字典的遍歷
dict = {"a" : "apple", "b" : "banana", "g" : "grape", "o" : "orange"}
for k in dict:
print "dict[%s] =" % k,dict[k]ui
#字典items()的使用
dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"}
#每一個元素是一個key和value組成的元組,以列表的方式輸出
print dict.items()spa
#調用items()實現字典的遍歷
dict = {"a" : "apple", "b" : "banana", "g" : "grape", "o" : "orange"}
for (k, v) in dict.items():
print "dict[%s] =" % k, v對象
#調用iteritems()實現字典的遍歷
dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"}
print dict.iteritems()
for k, v in dict.iteritems():
print "dict[%s] =" % k, v
for (k, v) in zip(dict.iterkeys(), dict.itervalues()):
print "dict[%s] =" % k, v
排序
#使用列表、字典做爲字典的值
dict = {"a" : ("apple",), "bo" : {"b" : "banana", "o" : "orange"}, "g" : ["grape","grapefruit"]}
print dict["a"]
print dict["a"][0]
print dict["bo"]
print dict["bo"]["o"]
print dict["g"]
print dict["g"][1]索引
dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"}
#輸出key的列表
print dict.keys()
#輸出value的列表
print dict.values()
#每一個元素是一個key和value組成的元組,以列表的方式輸出
print dict.items()ip
dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"}
it = dict.iteritems()
print itci
#字典中元素的獲取方法
dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"}
print dict
print dict.get("c", "apple")
print dict.get("e", "apple")
#get()的等價語句
D = {"key1" : "value1", "key2" : "value2"}
if "key1" in D:
print D["key1"]
else:
print "None"
#字典的更新
dict = {"a" : "apple", "b" : "banana"}
print dict
dict2 = {"c" : "grape", "d" : "orange"}
dict.update(dict2)
print dict
#udpate()的等價語句
D = {"key1" : "value1", "key2" : "value2"}
E = {"key3" : "value3", "key4" : "value4"}
for k in E:
D[k] = E[k]
print D
#字典E中含有字典D中的key
D = {"key1" : "value1", "key2" : "value2"}
E = {"key2" : "value3", "key4" : "value4"}
for k in E:
D[k] = E[k]
print D
#設置默認值
dict = {}
dict.setdefault("a")
print dict
dict["a"] = "apple"
dict.setdefault("a","default")
print dict
#調用sorted()排序
dict = {"a" : "apple", "b" : "grape", "c" : "orange", "d" : "banana"}
print dict
#按照key排序
print sorted(dict.items(), key=lambda d: d[0])
#按照value排序
print sorted(dict.items(), key=lambda d: d[1])
#字典的淺拷貝
dict = {"a" : "apple", "b" : "grape"}
dict2 = {"c" : "orange", "d" : "banana"}
dict2 = dict.copy()
print dict2
#字典的深拷貝
import copy
dict = {"a" : "apple", "b" : {"g" : "grape","o" : "orange"}}
dict2 = copy.deepcopy(dict)
dict3 = copy.copy(dict)
dict2["b"]["g"] = "orange"
print dict
dict3["b"]["g"] = "orange"
print dict