本节内容:
1、增
2、查
3、改
4 、删 (del clear pop)
5、其他操作以及涉及到的方法
字典
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。
字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
创建字典:
1 a={'name':'alex','age':36,'sex':'male'}
2 b=dict((('name','alex'),))
3 print(a)
4 print(b)
1 、增
1 a = {'name':'jxj','hobby':'boy'}
2 a['age'] = 20 #a字典没有age键,就增加age的字典
3 print(a)
4 a['name'] = 'alix' #a字典有name的键就修改name的字典
5 print(a)
6
7 a.setdefault('name','alix') #setdefault,a字典原有name键不做任何修改
8 print(a)
9 a.setdefault('age',21) #setdefault,a字典没有age键,进行添加age键
10 print(a)
2 、查
1 a = {'name':'jxj','hobby':'boy'}
2 a.get("name") #获取value,key不存在则返回None
3 print(a['name']) #通过name键查询值
4 print(list(a.keys())) #查询a字典中所有的值
5 print(list(a.values())) #查询a字典中所有的键
6 print(list(a.items())) #查询a字典中所有的键值对
3 、改
1 a = {'name':'jxj','hobby':'boy'}
2 a['name'] = 'alix' #通过a字典中的name键进行修改
3 print(a)
4 b = {'1':'111','name':'alix'}
5 a.update(b) #updete更新,b字典中有和a字典中相同的键,就把b字典的值更新到a字典
6 print(a)
7 print(b)
4、 删 (del clear pop)
1 a = {'name':'jxj','hobby':'boy'}
2 del a['name'] #删除a字典中的name键和值
3 print(a)
4
5 a.clear() #清空a字典中的键值对
6 print(a)
7
8 b = a.pop('name') #删除a字典中的name键,并且返回name键的值
9 print(a)
10 print(b)
5、 其他操作以及涉及到的方法
5.1 dict.fromkeys 创建元组
1 d1=dict.fromkeys(['host1','host2','host3'],'Mac') #增加一个元组,元组的键有host1,host2,host3,它们三个键的值都是Mac
2 print(d1)
3
4 d1['host1']='xiaomi'
5 print(d1)
6
7 d2=dict.fromkeys(['host1','host2','host3'],['Mac','huawei']) #增加一个元组,元组的键有host1,host2,host3,它们三个键的值都是['Mac','huawei']
8 print(d2)
9 d2['host1'][0]='xiaomi' #修改d2元组中host1键中的值(列表)中索引为0的值为xiaomi
10 print(d2)
5.2 d.copy() 对字典 d 进行浅复制,返回一个和d有相同键值对的新字典
5.3 字典的嵌套
1 jxj = {
2 'a':{
3 '1': ['111','1111'],
4 '2': ['222','2222'],
5 '3': ['333','3333'],
6 '4': ['444','4444']
7 },
8 'b':{
9 '5':['555','5555']
10 },
11 'c':{
12 '6':['666','6666']
13 }
14 }
15 print(jxj)
16 jxj['a']['1'][1] = "修改" #通过jxj字典的a键中的值的1键中的值的索引为1的值(‘1111’)进行修改
17 print(jxj)
5.4 排序 sorted(dict) : 返回一个有序的包含字典所有key的列表
1 1 b ={ 'a':'3', 'f':'2', 'c':'1'}
2 2 print(sorted(b)) #排序,如果是字符串就按照首字母排序
3 3 print(sorted(b.values())) #如果是数字就按照大小排序
5.5 字典的遍历
1 a={'name': 'alex', 'age': 18}
2
3 for i in a:
4 print(i,a[i])
5
6 for items in a.items():
7 print(items)
8 for keys,values in a.items():
9 print(keys,values)
还用我们上面的例子,存取这个班学生的信息,我们如果通过字典来完成,那:
1 a={'zhangsan':{'age':23,'sex':'male'},
2 '李四':{'age':33,'sex':'male'},
3 'wangwu':{'age':27,'sex':'women'}
4 }