Python 字典类型及相关操作
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。
字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
创建字典:
|
1
2
3
4
|
dic1={'name':'alex','age':36,'sex':'male'}dic2=dict((('name','alex'),))print(dic1)print(dic2) |
对应操作:
1 增
|
1
2
3
4
5
6
7
8
9
10
|
dic3={}dic3['name']='alex'dic3['age']=18print(dic3)#{'name': 'alex', 'age': 18}a=dic3.setdefault('name','yuan')b=dic3.setdefault('ages',22)print(a,b)print(dic3) |
2 查
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
dic3={'name': 'alex', 'age': 18}# print(dic3['name'])# print(dic3['names'])## print(dic3.get('age',False))# print(dic3.get('ages',False))print(dic3.items())print(dic3.keys())print(dic3.values())print('name' in dic3)# py2: dic3.has_key('name')print(list(dic3.values())) |
3 改
|
1
2
3
4
5
6
|
dic3={'name': 'alex', 'age': 18}dic3['name']='alvin'dic4={'sex':'male','hobby':'girl','age':36}dic3.update(dic4)print(dic3) |
4 删
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
dic4={'name': 'alex', 'age': 18,'class':1}# dic4.clear()# print(dic4)del dic4['name']print(dic4)a=dic4.popitem()print(a,dic4)# print(dic4.pop('age'))# print(dic4)# del dic4# print(dic4) |
5 其他操作以及涉及到的方法
5.1 dict.fromkeys
|
1
2
3
4
5
6
7
8
9
10
|
d1=dict.fromkeys(['host1','host2','host3'],'Mac')print(d1)d1['host1']='xiaomi'print(d1)#######d2=dict.fromkeys(['host1','host2','host3'],['Mac','huawei'])print(d2)d2['host1'][0]='xiaomi'print(d2) |
5.2 d.copy() 对字典 d 进行浅复制,返回一个和d有相同键值对的新字典
5.3 字典的嵌套
View Code5.4 sorted(dict) : 返回一个有序的包含字典所有key的列表
|
1
2
|
dic={5:'555',2:'222',4:'444'}print(sorted(dic)) |
5.5 字典的遍历
|
1
2
3
4
5
6
7
8
9
|
dic5={'name': 'alex', 'age': 18}for i in dic5: print(i,dic5[i])for items in dic5.items(): print(items)for keys,values in dic5.items(): print(keys,values) |
还用我们上面的例子,存取这个班学生的信息,我们如果通过字典来完成,那:
|
1
2
3
4
|
dic={'zhangsan':{'age':23,'sex':'male'}, '李四':{'age':33,'sex':'male'}, 'wangwu':{'age':27,'sex':'women'} } |

浙公网安备 33010602011771号