字典用法

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

相关文章
相关标签/搜索