第四章-字典当索引不好用时:——python基础教程(第二版)笔记

2/22/2017来源:ASP.NET技巧人气:2850

本章是依据名字对数组项进行引用

4.2创建和使用字典

x={"a":"1","b":"2"} #大括号{}表示字典,逗号,分隔,冒号:表示 PRint x

4.2.1dict函数

x=[("a","b"),("1","2")] d=dict(x) #序列字典化 print d d=dict(a="1",b="2") print d

输出结果

{'a': 'b', '1': '2'} {'a': '1', 'b': '2'} Press any key to continue . . .

4.2.2基本字典操作

与序列类似:

len(x) del x[] k in x

4.2.3字典的格式化字符串

x={'a': '1', 'b': '2'} print "a is %(a)s."%x

输出结果

a is 1. Press any key to continue . . .

4.2.4字典方法

#1.clear 清空字典 d={} #创建空字典 d["a"]="1" #给字典添加内容 d["b"]="2" print d # 输出结果{'a': '1', 'b': '2'} new_d=d.clear() #清空d print d # 输出结果{} print new_d # 输出结果None #2.copy 返回具有相同建的新字典(实际上是浅复制shallow copy) x={'a': '1', 'b': '2'} y=x.copy() print # 输出结果y{'a': '1', 'b': '2'} y["a"]=3 print # 输出结果 y{'a': 3, 'b': '2'} print # 输出结果 x{'a': '1', 'b': '2'}对y的修改不影响x x={'a': '1', 'b': '2'} y=x.copy() from copy import deepcopy z=deepcopy(x) #深复制 x["a"]=4 print x,y,z # 输出结果{'a': 4, 'b': '2'} {'a': '1', 'b': '2'} {'a': '1', 'b': '2'} #3.fromkeys使用给定的键建立新字典 print {}.fromkeys(["a","b"]) # 输出结果{'a': None, 'b': None}默认赋值None print {}.fromkeys(["a","b"],2) # 输出结果{'a':2, 'b':2}默认值设为2 #4.get宽松的访问词典的方式,若不存在项不报错,显示None x={'a': '1', 'b': '2'} print x.get("a"),x.get("c") # 输出结果 1 None #5.has_key 字典中是否含有特定的键,返回TRUE or FALSE x={'a': '1', 'b': '2'} print x.has_key("a"),x.has_key("c") # 输出结果 True False #6.items 字典以列表形式返回,disk逆过程 iteitems 返回迭代器 print x.items() # 输出结果[('a', '1'), ('b', '2')] print x.iteritems() # 输出结果<dictionary-itemiterator object at 0x02C644E0> print list(x.iteritems()) # 输出结果[('a', '1'), ('b', '2')] 显示迭代器内容 #7.keys和iterkeys #8.pop移除给定键 x={'a': '1', 'b': '2'} x.pop("b") print x # 输出结果{'a': '1'} #9.popitem去掉最后一个元素,相当于按顺序删除 x={'a': '1', 'b': '2'} x.popitem() print x # 输出结果{'b': '2'} #setdefault相当于get,同时可以更新字典 x={'a': '1', 'b': '2'} print x.setdefault("a") # 输出结果1 #11.update x={'a': '1', #可以回车创建字典 'b': '2'} y={"a":"3"} x.update(y) print x # 输出结果 {'a': '3', 'b': '2'} #12.values以列表方式返回字典中的值 itervalues返回迭代器,同 iteitems x={'a': '1', 'b': '2'} print x.values() # 输出结果['1', '2']