1、dict函数建立字典,可以映射 字典,或者 键值排列正确的序列
>>> a = {"a":"1","b":"2"}
>>> dict(a)
{'a': '1', 'b': '2'}
>>> a = [("a","1"),("b","2")]
>>> dict(a)
{'b': '2', 'a': '1'}
也可以通过关键词参数来建立字典
>>> a = dict(a="1",b="2")
>>> a
{'b': '2', 'a': '1'}
len(d) 返回字典的项的数量 d[k] 返回键K对应的值 d[k] = v 将值v关联到键k上 del d[k] 删除键k这个项 k in d 检查字典d里面有没有键为k的项 |
2、字典的 键 是不可改变的 浮点型,字符串或者元组
3、键a 不在字典里,也可以为键a赋值,字典会自动建立包含键a 的项
而列表则不行,列表必须主动添加(append等)
4、 a in b 是成员资格测试,a 是否是b中的一员
字典查找的是键 a in b ,键a是否在字典b里
而列表查找的是值 a in b ,a值 是否在列表b里
5、字典的一些方法
D.get(key, 0) #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常 D.has_key(key) #有该键返回TRUE,否则FALSE D.keys() #返回字典键的列表 D.values() D.items() D.update(dict2) #增加合并字典 D.popitem() #得到一个pair,并从字典中删除它。已空则抛异常 D.clear() #清空字典,同del dict D.copy() #拷贝字典 D.cmp(dict1,dict2) #比较字典,(优先级为元素个数、键大小、键值大小) #第一个大返回1,小返回-1,一样返回0 dictionary的复制 dict1 = dict #别名 dict2=dict.copy() #克隆,即另一个拷贝 |
6、
from copy import deepcopy deepcopy函数可以复制出一个独立的字典,不受原字典的影响 而copy方法复制的字典,会受到原字典的影响 | from copy import deepcopy d = {} d["x"] = ["1"] print(d) c = d.copy() dc = deepcopy(d) d["x"].append("xx") print(c) print(dc) 结果如下: {'x': ['1']} {'x': ['1', 'xx']} {'x': ['1']} |
7、fromkeys 的用法
fromkeys()函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值 dict.fromkeys(seq,value) seq -- 字典键值列表。 value -- 可选参数,设置键序列(seq)的值 |
seq = ('name', 'age', 'sex') dict = dict.fromkeys(seq) print "New Dictionary : %s" % str(dict) dict = dict.fromkeys(seq, 10) print "New Dictionary : %s" % str(dict) 以上实例输出结果为: New Dictionary : {'age': None, 'name': None, 'sex': None} New Dictionary : {'age': 10, 'name': 10, 'sex': 10} |
8、get 的用法
get()函数返回指定键的值,如果值不在字典中返回默认值 dict.get(key, default=None) key -- 字典中要查找的键。 default -- 如果指定键的值不存在时,返回该默认值值 |
get的好处是如果访问的键不存在,会返回none值,而其他方法则会报错 |
9、items的用法
items()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回 iteritems()方法和items()相同,但是会返回一个迭代器对象而不是像items一样返回列表,通常iteritems方法更高效 注意:iteritems在3.0版本以上没有了 |
person={'name':'lizhong','age':'26','city':'BeiJing','blog':'www.jb51.net'} for key,value in person.items(): print 'key=',key,',value=',value |
10、keys的用法
将字典的键以列表的形式返回 |
iterkeys则返回键的迭代器,这个函数方法在3.0版本被取消了 |
11、popitem的用法
随机返回字典的一个项,并删除它 |
popitem方法类似list.pop,但是字典里并没有顺序的概念,所以popitem只能随机删除一个项 |
12、setdefault 的用法
setdefault方法类似get,但setdefault还能在字典不含给定键的情况下,自动添加需要查询的键。 如果默认值不改,自动添加的键的值为none |
>>> person={'name':'lizhong'} >>> person.setdefault ("aa") >>> person {'name': 'lizhong', 'aa': None} >>> person.setdefault ("ac","hello") 'hello' >>> person {'name': 'lizhong', 'aa': None, 'ac': 'hello'} |
13、update的用法
利用一个字典的项更新另一个字典 提供的字典的项会被添加到旧的字典中,若有相同的键则会进行覆盖 |
>>> person {'name': 'lizhong', 'aa': None, 'ab': 'none', 'ac': 'hello'} >>> x = {"aa":"lucy"} >>> person.update (x) >>> person {'name': 'lizhong', 'aa': 'lucy', 'ab': 'none', 'ac': 'hello'} |
14、values 的用法
以列表的形式,返回字典的值 (注意:是值,不是项,也不是键) |
还有一个函数itervalues 返回值的迭代器,但是在3.0版本已经取消 |