python数据类型之字典Dictionary(二)
1.python字典
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。 两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。 字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
2.字典实例
#coding=utf-8 #创建空字典 dictionary1={} print(type(dictionary1)) #多元素字典 dictionary1 = {'age':18,'name':'tom',11:22,12.5:3.1415}; #取值 print(dictionary1["age"],dictionary1["name"]) print(dictionary1) #根据健,修改值 dictionary1["age"]=28 print(dictionary1["age"]) #添加值,字典名[健]=值 dictionary1["job"]="teach" dictionary1[888]=666 print(dictionary1) #根据健,删除值 del dictionary1[888] print(dictionary1) #清空字典条目 dictionary1.clear() print(dictionary1) #删除整个dictionary,打印会报NameError: name 'dictionary1' is not defined del dictionary1 print(dictionary1)
运行结果:
Traceback (most recent call last): File "D:\mypythonproject\第三单元-数据类型\dictionary.py", line 25, in <module> print(dictionary1) ^^^^^^^^^^^ NameError: name 'dictionary1' is not defined <class 'dict'> 18 tom {'age': 18, 'name': 'tom', 11: 22, 12.5: 3.1415} 28 {'age': 28, 'name': 'tom', 11: 22, 12.5: 3.1415, 'job': 'teach', 888: 666} {'age': 28, 'name': 'tom', 11: 22, 12.5: 3.1415, 'job': 'teach'} {}
3.字典方法实例
#coding=utf-8 dictionary1={11:22,33:44,55:66} dictionary2={'aa':'bb','cc':'dd','ee':'ff'} print(type(dictionary1),type(dictionary2),len(dictionary1),len(dictionary2),dictionary1,dictionary2) #以列表的形式返回字典的所有健 print(dictionary1.keys()) #直接复制,和copy的区别 dictionary3=dictionary1 #浅拷贝: 引用对象,像windows快捷键 dictionary4=dictionary1.copy() #浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,子对象是引用。像windows复制 print(dictionary3,dictionary4) del dictionary1[11] print(dictionary3,dictionary4) dictionary1[33]=33 print(dictionary3,dictionary4) #返回并删除字典中的最后一对键和值。 print(dictionary2.popitem()) #把字典dictionary2更新到dictionary1 dictionary1.update(dictionary2) print(dictionary1) #以列表的形式返回视图对象 print(dictionary1.items())
运行结果:
<class 'dict'> <class 'dict'> 3 3 {11: 22, 33: 44, 55: 66} {'aa': 'bb', 'cc': 'dd', 'ee': 'ff'} dict_keys([11, 33, 55]) {11: 22, 33: 44, 55: 66} {11: 22, 33: 44, 55: 66} {33: 44, 55: 66} {11: 22, 33: 44, 55: 66} {33: 33, 55: 66} {11: 22, 33: 44, 55: 66} ('ee', 'ff') {33: 33, 55: 66, 'aa': 'bb', 'cc': 'dd'} dict_items([(33, 33), (55, 66), ('aa', 'bb'), ('cc', 'dd')])