字典

字典介绍

生活中的字典

软件开发中的字典

根据键访问值

字典的常见操作(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

 

posted @ 2018-09-23 18:01  FlameLuo  阅读(266)  评论(0编辑  收藏  举报