一、什么是字典类型
变量info为字典类型:
info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
说明:
- 字典和列表一样,也能够存储多个数据
- 列表中找某个元素时,是根据下标进行的
- 字典中找某个元素时,是根据’名字’(就是冒号:前面的那个值,例如上面代码中的’name’、’id’、’sex’)
- 字典的每个元素由2部分组成,键:值。例如 ‘name’:’班长’ ,’name’为键,’班长’为值
二、字典的增删改查
<1>修改元素:修改字典值: 变量名[‘键’] = 数据
字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改
demo:
info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
newId = raw_input('请输入新的学号')
info['id'] = int(newId)
print('修改之后的id为%d:'%info['id'])
结果:
请输入新的学号23 (23为手动输入)
修改之后的id为23:
<2>添加元素 :变量名[‘键’] = 数据
demo:访问不存在的元素
info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}
print('id为:%d'%info['id'])
结果:
Traceback (most recent call last):
File "D:/python/认识py/02.py", line 23, in <module>
print('id为:%d' % info['id'])
KeyError: 'id'
如果在使用 变量名[‘键’] = 数据 时,这个“键”在字典中,不存在,那么就会新增这个元素
demo:添加新的元素
info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}
# print('id为:%d'%info['id'])#程序会终端运行,因为访问了不存在的键
newId = raw_input('请输入新的学号')
info['id'] = newId
print('添加之后的id为:%d'%info['id'])
结果:
请输入新的学号188
添加之后的id为: 188
<3>删除元素 del clear()
对字典进行删除操作,有一下几种:
1)、del删除指定的元素
demo:
info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}
print('删除前,%s'%info)
del info['name']
print('删除后,%s'info)
结果
删除前,{'name': '班长', 'sex': 'f', 'address': '地球亚洲中国北京'}
删除后,{'sex': 'f', 'address': '地球亚洲中国北京'}
del删除整个字典
demo:
info = {'name':'monitor', 'sex':'f', 'address':'China'}
print '删除前,',info
del info
print '删除后,',info
结果
Traceback (most recent call last):
File "D:/python/认识py/02.py", line 27, in <module>
print('删除后,%s'%info)
NameError: name 'info' is not defined
删除前,{'name': '班长', 'sex': 'f', 'address': '地球亚洲中国北京'}
clear清空整个字典
demo:
info = {'name':'monitor', 'sex':'f', 'address':'China'}
print '清空前,',info
info.clear()
print '清空后,',info
结果
删除前,{‘name’: ‘班长’, ‘sex’: ‘f’, ‘address’: ‘地球亚洲中国北京’}
删除后,{}
三、常见的字典取值函数
<1>len()测量字典中,键值对的个数
<2>keys返回一个包含字典所有KEY的列表
info = {'name': '班长', 'sex': 'f', 'address': '地球亚洲中国北京'}
print(info.keys())
结果为:
dict_keys(['name', 'sex', 'address'])
<3>values 返回一个包含字典所有value的列表
info = {'name': '班长', 'sex': 'f', 'address': '地球亚洲中国北京'}
print(info.values())
结果为:
dict_values(['班长', 'f', '地球亚洲中国北京'])
<4>items 返回一个包含所有(键,值)元组的列表
info = {'name': '班长', 'sex': 'f', 'address': '地球亚洲中国北京'}
print(info.items())
结果为:
dict_items([('name', '班长'), ('sex', 'f'), ('address', '地球亚洲中国北京')])
<5>判断一个key是否存在于某个dict
dict.has_key(key)如果key在字典中,返回True,否则返回False
has_key只适用于python2.x,在python 3.0版本开始将使用in/not in 代替
python2.x中
dict = {'Name': 'Maxsu', 'Age': 7}
print ("Value : %s" % dict.has_key('Age'))
python3.x中使用
dict = {'Name': 'Maxsu', 'Age': 7}
print ( 'Age' in dict.keys() )
print ( 'Age' in dict )
print ( 'Sex' not in dict.keys() )
print ( 'Sex' not in dict )
结果都为true
字典的遍历
<1> 遍历字典的key(键)
dict = {'Name': 'Maxsu', 'Age': 7}
for i in dict.keys():
print (i)
结果为:
Name
Age
<2> 遍历字典的value(值)
dict = {'Name': 'Maxsu', 'Age': 7}
for i in dict.values():
print (i)
结果为:
Maxsu
7
<3> 遍历字典的项(元素)
dict = {'Name': 'Maxsu', 'Age': 7}
for i in dict.items():
print (i)
结果为:
('Name', 'Maxsu')
('Age', 7)
<4> 遍历字典的key-value(键值对)
dict = {'Name': 'Maxsu', 'Age': 7}
for i ,v in dict.items():
print ("key = %s,value = %s"%(i,v))
结果为:
key = Name,value = Maxsu
key = Age,value = 7