1. dict函数,通过其他映射或者(键,值)这样的序列对简历字典
1 >>> items = [('name', 'Gumby'), ('age', 42)] 2 >>> d = dict(items) 3 >>> d 4 {'age': 42, 'name': 'Gumby'} 5 >>> d['name'] 6 'Gumby' 7 >>> d = dict(name='Gumby', 'age'=42) 8 SyntaxError: keyword can't be an expression 9 >>> d = dict(name='Gumby', age = 42) 10 >>> d 11 {'age': 42, 'name': 'Gumby'} 12 >>>
k in d 检查d中是否有含有键为k的项。
键类型:字典的键不一定为整形数据,也可能是其他不可变类型,比如浮点型、字符串或者元组。
自动添加:即使那个键起初在字典中并不存在,也可以为他分配一二值,这样字典就会建立新的项,而不是用类似appen的添加方法
成员资格:表达式 k in d 查找的是键,而不是值。
1 >>> phonebook = {'Beth':'9102', 'Alice':'2341', 'Cecil': '3258'} 2 >>> "Cecil's phone number is %(Cecil)s." % phonebook 3 "Cecil's phone number is 3258." 4 >>>
2. 字典方法
2.1 clear方法清除字典中所有的项原地操作,无返回值。
2.2 copy方法(浅复制)关于浅拷贝和深拷贝,参考:http://python.jobbole.com/82294/
2.3 fromkeys(键,值)
1 {}.fromkeys('name', 'age') 2 {'a': 'age', 'e': 'age', 'm': 'age', 'n': 'age'} 3 #键使用列表提供,值为None 4 >>> dicta = {}.fromkeys(['name', 'age']) 5 >>> dicta 6 {'age': None, 'name': None} 7 #键和值 8 >>> dict.fromkeys(['name', 'age'], 'unknown') 9 {'age': 'unknown', 'name': 'unknown'}
2.4 get方法,如果试图访问字典中不存在的键时会出错“KeyError”,而get方法就不会。
1 >>> d = {} 2 >>> d['name'] 3 4 Traceback (most recent call last): 5 File "<pyshell#18>", line 1, in <module> 6 d['name'] 7 KeyError: 'name' 8 >>> d.get('name') 9 >>> d['name'] = 'Eric' 10 >>> d.get('name') 11 'Eric'
2.5 has_key方法(3.0以后没有此方法),相当远 k in d ,返回True和False
2.6 items和iteritems,items方法将所有的字典项以列表方式返回,列表项中的每一项来自于(键,值),但是项在返回时没有特殊的顺序。
1 >>> d = {'title':'Python Web Site', 'url': 'http://www.pythonorg', 'spam':0} 2 >>> d.items() 3 [('url', 'http://www.pythonorg'), ('spam', 0), ('title', 'Python Web Site')]
iteritems方法的作用大致相同,返回一个迭代器对象而不是列表
>>> it = d.iteritems() >>> it <dictionary-itemiterator object at 0x03632270> >>> list(it) [('url', 'http://www.pythonorg'), ('spam', 0), ('title', 'Python Web Site')]
2.7 keys和iterkeys,keys方法将字典中的键以列表形式返回,而iterkeys返回键的迭代器
1 >>> d.keys() 2 ['url', 'spam', 'title']
2.8 pop方法用来获得对应于给定键的值,然后将这个键-值对从字典中移除
1 >>> d.pop('spam') 2 0 3 >>> d 4 {'url': 'http://www.pythonorg', 'title': 'Python Web Site'} 5 >>>
popitem从列表中一项一项的移除。
1 >>> d 2 {'url': 'http://www.pythonorg', 'title': 'Python Web Site'} 3 >>> d.popitem() 4 ('url', 'http://www.pythonorg') 5 >>> d 6 {'title': 'Python Web Site'} 7 >>> d.popitem() 8 ('title', 'Python Web Site') 9 >>> d 10 {}
2.8 d.setdefault()为键设置默认值,键不存在也可以设置默认值。如果键-值对存在,则不再返回默认值。
1 >>> d = {} 2 >>> d.setdefault('name', 'N/A') 3 'N/A' 4 >>> d 5 {'name': 'N/A'} 6 >>> d['name'] = 'Gumby' 7 >>> d.setdefault('name', 'N/A') 8 'Gumby'
2.9 update方法利用一个字典项更新另外一个字典,可以添加项,也可以覆盖原有项。
1 >>> d = {'title': 'Python Web Site', 2 'url': 'http://www.python.org', 3 'changed': 'Mar 14 22:09:15 MET 2018'} 4 >>> x = {'title': 'Python Language Webssite'} 5 >>> d.update(x) 6 >>> d 7 {'url': 'http://www.python.org', 'changed': 'Mar 14 22:09:15 MET 2018', 'title': 'Python Language Webssite'} 8 >>>
2.10 values和itervalues,values方法以列表的形式返回字典中的值,与返回键的列表不同的是,返回值的列表可以包含重复的元素。
3 字典编码
当字典中有中文值时,直接输出字典会显示字符编码,可以使用 json.dumps(dict_name, ensure_ascii=False) 方式来获得合适的输出。