python入门—认识字典

本节内容:
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      }
 
posted @ 2018-07-19 22:58  十年寒衣如雪  阅读(210)  评论(0编辑  收藏  举报