第九讲:字典
字典
说明:字典是可变容器,可以存储任何类型对象,使用键-值(key-value)存储,具有极快的查找速度。键是唯一的,值可以取任何数据类型
1、创建字典:
dict={} #创建空字典
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
2、(查)访问字典的值:
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} print ("dict['Name']=",dict['Name']) print ("dict['Age']=",dict['Age'])
运行结果:
dict['Name']= Zara
dict['Age']= 7
3、(改)修改字典的值:
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} dict['Age']=8 #修改键的值 print ("dict['Age']=",dict['Age']) dict['school']='XINDONGFANG' #增加新的键值 print (dict)
运行结果:
dict['Age']= 8
{'Name': 'Zara', 'Age': 8, 'Class': 'First', 'school': 'XINDONGFANG'}
4、(删)删除字典的值
- 删除字典的元素
- 清空字典
- 删除字典
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} del dict['Name'] #删除字典元素 print (dict) dict.clear() #清除字典 print (dict) del dict #删除字典 print (dict)
运行结果:
{'Age': 7, 'Class': 'First'}
{}
<class 'dict'>
5、遍历字典:分别遍历字典的key,value,items:
#遍历key值 for key in dict.keys(): print (key) print ('--'*10) #遍历value值 for value in dict.values(): print (value) print ('--'*10) #遍历key和value值 for key,value in dict.items(): print (key+'='+str(value))
运行结果:
Name
Age
Class
--------------------
Zara
7
First
--------------------
Name=Zara
Age=7
Class=First
6、判断key是否存在(key值唯一):
方法一:通过 in 判断key是否存在
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print ('Name1' in dict)
运行结果:
False
注意:python3没有has_key()方法,用in代替
方法三:get()方法判断key是否存在,key不存在,返回None,或指定的value值
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print (dict.get('Name')) print (dict.get('Name2',-1))
运行结果:
Zara
-1
7、字典的排序:sored(key,reverse),reverse默认是False,升序排序;如reverse=True,为降序排序
- sored()默认是对字典的键,从小到大排序:
dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} dict2=sorted(dict1) print (dict2)
运行结果:
['Age', 'Class', 'Name']
- 对字典的键反向排序:
dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} dict2=sorted(dict1.keys(),reverse=True) print (dict2)
- 对字典的值排序:
dict1={'a':2,'e':3,'f':8,'d':4} list1 = sorted(dict1.values(),reverse=True) print (list1)
运行结果:
[8, 4, 3, 2]
- 用items()函数 对字典的键和值进行排序:
dict1={'a':2,'e':3,'f':8,'d':4} print (dict1.items()) list1=sorted(dict1.items(),key=lambda x:x[0]) #按键key进行排序 print (list1) list2=sorted(dict1.items(),key=lambda x:x[1]) #按键value进行排序 print (list2)
运行结果:
dict_items([('a', 2), ('e', 3), ('f', 8), ('d', 4)])
[('a', 2), ('d', 4), ('e', 3), ('f', 8)]
[('a', 2), ('e', 3), ('d', 4), ('f', 8)]