字典介绍
生活中的字典
软件开发中的字典
根据键访问值
字典的常见操作(1)
1.修改元素
2.添加元素
3.删除元素
字典的常见操作(2)
1.len()
2.keys
3.values
4.items
5.has_key
遍历
字典介绍
#如果有列表 namelist = ['zhangsan','lisi','wangwu'] #需要对“lisi”这个名字写错了,通过代码修改 namelist[1] = 'sunliu' #如果列表的顺序发生了变化,如下 namelist = ['zhangsan','lisi','wangwu'] #此时就需要修改下标,才能完成名字的修改 namelist[0] = 'sunliu'
有没有办法,既能存储多个数据,还能在访问元素的很方便就能够定位到需要的那个元素呢?
答案:字典
另一个场景:
学生信息列表,每个学生信息包括学号、姓名、年龄等,如何从中找到某个学生的信息?
>students = [ [1001,'zhangsan',20], [1002,'lisi',10], [1003,'wangwu',18], ]
2.软件开发中的字典
变量info为字典类型:
info = {'name':班长,‘id’:100,'sex':'f'}
总结:
*字典和列表一样,也能存储多个数据
*列表中找某个元素时,是根据下标进行的
*字典中找某个元素时,是根据“名字”(就是冒号:前面的那个值,例如上面代码中的‘name’、‘id’、‘sex’)
*字典的每个元素由2部分组成,键:值。
例如‘name’:‘班长’,’name‘为键,’ 班长‘为值
3.根据键访问值
info ={'name':'班长','id':100,'sex':'f'} print(info['name']) print(info['sex']) 结果: 班长 f
若访问不存在的键,则会报错:
>info['age'] Traceback (most recent call last) File "<stdin>",line 1, in<module> KeyError:'age'
在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值:
>age = info.get('age') >age #'age'键不存在,所以age为None >type(age) <type 'NoneType> >age = info.get('age',18) #若info中不存在‘age’这个键,就返回默认值1 >age 18
字典中常见操作1
1.修改元素
解释:字典中的每个元素的数据都是可以修改的,只要通过key找到,即可修改
info = {'name':'班长',’id‘:100,’sex‘:’f‘} newid = input(“请输入新的学号”) info['id'] = int(newid) print('修改之后的id为 %d' %info['id'])
2.添加元素
解释:访问不存在的元素
info = {'name':'班长',‘sex’:‘f’} print('id为 %d ' %info['id']) #则会报错
如果在使用变量名['键'] = 数据时,这个‘键’在字典中,不存在,那么就会新增这个元素
案例:添加新的元素
info = {'name':'班长',‘sex’:‘f’} #print('id为:%d' %info['id']) #程序会中断运行,因为访问了不存在的键 newid = input(‘请输入新的学号’) info['id'] = newid print('添加之后的id为:%d' %info['id']) #结果 请输入新的学号100 添加之后的id为:100
3.删除元素
解释:对字典进行删除操作,有以下几种:
*del
*clear
案例:del删除指定的元素
info = {'name':'班长',‘sex’:‘f’} print(‘删除前,%s’ %info['name']) del info['name'] print('删除后,%s ' %info['name']) #则会发现,删除后,是不能进行访问的
案例:del删除整个字典
info = {'name':'zhangsan','sex':'f','address':'china'} print(‘删除前,%s’ %info) del info print(‘删除后,%s’ %info)
案例:clear清空整个字典
info = {'name':'zhangsan','sex':'f','address':'china'} print('清空前,%s' %info) info.clear() print('清空后,%s' %info) #运行结果: 清空前,{'name':'zhangsan','sex':'f','address':'china'} 清空后,{}
字典的常见操作2
1.len()
作用:测量字典中,键值对的个数
>dict = {"name":'zhangsan','sex':'f'} >len(dict) 2
2.keys
作用:返回一个包含字典所有KEY的列表
>dict = {"name":'zhangsan','sex':'f'} >dict.keys() ['name','sex']
3.values
作用:返回一个包含字典所有value的列表
>dict = {'name':'zhangsan','sex':'f'} >dict.values() ['zhangsan','f']
4.items
作用:返回一个包含所有(键,值)元组的列表
>dict = {"name":'zhangsan','sex':'f'} >dict.items() [('name','zhangsan'),('sex','f')]
5.has_key
dict.has_key(keu)如果key在字典中,返回True,否则返回False
>dict = {"name":'zhangsan','sex':'f'} >dict.has_key('name') True >dict.has_key('phone') False