对字典的认识:
字典由键(key)和对应值(value)成对组成。字典也被称作关联数组或哈希表。
注意:
- 键必须独一无二,但值则不必。即,键是不能重复,但值可以是重复的;
- 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
- 键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行;
- 值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。
创建字典(三种方法)
第一种方法:创建空字典
例:
d = {} #可以往空字典添加内容
第二种方法:创建有内容的字典
person = {"name":"xiaoxu","blog":"http://blog.csdn.net/xsj_blog"}
第三种方法:先创建元组,元组里面是列表元素,每个列表都有两个元素,这两个元素分别对应着即将创建字典的key和value
例:
name = ([1,'google'],[2,'facebook']) web = dict(name)
第四种方法:使用fromkeys创建字典,其语法格式如下
mydict = {}.fromkeys(arg)
例:
>>> book = {}.fromkeys(("python","author"),"xiaoxu") >>> book {'python': 'xiaoxu', 'author': 'xiaoxu'} >>>
访问字典的值
>>> dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; >>> print dict['Name'] Zara >>>
修改字典
>>> dict = {'Name': 'xiaoxu', 'Age': 20, 'Class': 'First'}; >>> dict['Age'] = 23; >>> print dict['Age'] 23 >>>
删除字典元素
例:
>>> dict = {'Name': 'xiaoxu', 'Age': 20, 'Class': 'First'}; >>>dict.clear() #清空字典所有条目 >>>del dict; #删除字典
六、字典常用方法
copy()函数
作用:返回一个字典的浅复制
例:
>>> d = {"name":"xiaoxu","blog":"http://blog.csdn.net/xsj_blog"} >>>f=d.copy() >>> f {'blog': 'http://blog.csdn.net/xsj_blog', 'name': 'xiaoxu'} >>>
clear()函数
作用:删除字典内所有元素
例:
>>>dict = {'Name': 'xiaoxu', 'Age': 20, 'Class': 'First'}; >>>dict.clear() #清空字典所有条目
get()函数
语法格式:get(key, default=None)
作用:返回指定键的值,如果值不在字典中返回default值
例:
>>> d = {'enjoy':['python'],'name':'xiaoxu'} >>> d.get('name') 'xiaoxu' >>> d.get("teacher","duolaoshi") 'duolaoshi' >>>
setdefault()
语法格式:setdefault(key, default=None)
作用:和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
例:
>>> d = {'enjoy':['python'],'name':'xiaoxu'} >>> d.setdefault('name') 'xiaoxu' >>> d.setdefault('city','suzhou') 'suzhou' >>> d {'enjoy': ['python'], 'city': 'suzhou', 'name': 'xiaoxu'} >>> >>> e.setdefault('teacher') >>> e {'enjoy': ['python'], 'city': 'suzhou', 'name': 'xiaoxu', 'teacher': None} >>>
items()函数
作用:以列表返回可遍历的(键, 值) 元组数组
例:
>>> d = {'enjoy': ['python'], 'city': 'suzhou', 'name': 'xiaoxu'} >>> d.items() [('enjoy', ['python']), ('city', 'suzhou'), ('name', 'xiaoxu')] >>>
keys()函数
作用:以列表返回一个字典所有的键
例:
>>> d = {'enjoy': ['python'], 'city': 'suzhou', 'name': 'xiaoxu'} >>> d.keys() ['enjoy', 'city', 'name'] >>>
values()函数
作用:以列表返回字典中的所有值
例:
>>> d = {'enjoy': ['python'], 'city': 'suzhou', 'name': 'xiaoxu'} >>> d.values() [['python'], 'suzhou', 'xiaoxu'] >>>———-
pop()函数
popitem()函数
update()函数
作用:把字典dict2的键/值对更新到dict里
例:
>>> d1 = {"lang":"python"} >>> d2 = {"name":"xiaoxu"} >>> d1.update(d2) >>> d1 {'lang': 'python', 'name': 'xiaoxu'} >>> d2 {'name': 'xiaoxu'} >>> >>> >>> d2.update([("city","suzhou"),("web","google")]) >>> d2 {'city': 'suzhou', 'name': 'xiaoxu', 'web': 'google'} >>>
has_key()函数
语法格式:has_key(key)
作用:如果键在字典dict里返回true,否则返回false
例:
>>>d = {'enjoy': ['python'], 'city': 'suzhou', 'name': 'xiaoxu'} >>>d.has_key("name") >>>True