day05
2019-05-13 07:17:52来源:博客园 阅读 ()
1、字典(dict)讲解及增删改查操作
数据类型划分:可变数据类型,不可变数据类型
不可变数据类型:元组,bool, int, str。又称可哈希
可变数据类型:list,dict,set。又称不可哈希
dict(字典)的key(键) 必须是不可变数据类型(可哈希)。它的value(值)是任意数据类型。
dict 优点:能利用二分查找去查询,速度快。
存储大量的关系型数据
1 dic = { 2 'name':'xiaoming', 3 'age':20, 4 'sex':'male' 5 }
1.2、增
1 #增: 2 #1、 3 #1.1、增加原先没有的 4 dic['height'] = 180 5 print(dic) 6 #result: 7 #{'name': 'xiaoming', 'age': 20, 'sex': 'male', 'height': 180} 8 #1.2、覆盖原先的 9 dic['age'] = 18 10 print(dic) 11 #result: 12 #{'name': 'xiaoming', 'age': 18, 'sex': 'male', 'height': 180} 13 #2、setdefault对于已有的键值,更改不采取任何操作,对于没有的键值,更改才有效果 14 ''' 15 dic.setdefault('weight')#后面不加值,则默认为None 16 print(dic) 17 ''' 18 #result: 19 #{'name': 'xiaoming', 'age': 18, 'sex': 'male', 'height': 180, 'weight': None} 20 dic.setdefault('weight',130) 21 print(dic) 22 #result: 23 #{'name': 'xiaoming', 'age': 18, 'sex': 'male', 'height': 180, 'weight': 130}
1.3、删
1 #删 2 #1、 3 print(dic.pop('weight'))#130,说明字典中pop也有返回值 4 print(dic) 5 #result: 6 #{'name': 'xiaoming', 'age': 18, 'sex': 'male', 'height': 180} 7 8 #若删除一个字典里面没有的键,会报错,如: 9 ''' 10 dic.pop('hobby') 11 ''' 12 #这时,若我们不知道有没有这个见,但是我们有想删除它,只需要在后面加一点提示即可,如: 13 print(dic.pop('hobby',None))#在控制台,会打印出来这个None 14 15 #2、 popitem() 方法随机返回并删除字典中的一对键和值(一般删除末尾对)。 16 dic1 = { 17 'name':'xiaoming', 18 'age':20, 19 'sex':'male', 20 'height':180, 21 'hobby':'football', 22 'school':'PeKing University', 23 'hometown':'anhui' 24 } 25 print(dic1.popitem())#有返回值 26 print(dic1) 27 dic1.popitem() 28 print(dic1) 29 dic1.popitem() 30 print(dic1) 31 dic1.popitem() 32 print(dic1) 33 #result: 34 #{'name': 'xiaoming', 'age': 20, 'sex': 'male', 'height': 180, 'hobby': 'football', 'school': 'PeKing University'} 35 # {'name': 'xiaoming', 'age': 20, 'sex': 'male', 'height': 180, 'hobby': 'football'} 36 # {'name': 'xiaoming', 'age': 20, 'sex': 'male', 'height': 180} 37 # {'name': 'xiaoming', 'age': 20, 'sex': 'male'} 38 39 #3、del 40 dic2 = { 41 'name':'xiaoming', 42 'age':20, 43 'sex':'male' 44 } 45 del dic2['age']#若删除没有的键,则报错,故尽量用pop方法 46 print(dic2) 47 #result: 48 #{'name': 'xiaoming', 'sex': 'male'} 49 50 #4、clear:清空 51 dic3 = { 52 'name':'xiaoming', 53 'age':20, 54 'sex':'male' 55 } 56 dic3.clear() 57 print(dic3) 58 #result: 59 #{}
1.4、改
1 #改 2 #1、覆盖 3 dic4 = { 4 'name':'xiaoming', 5 'age':20, 6 'sex':'male' 7 } 8 dic4['age'] = '18' 9 print(dic4) 10 11 #2、update 12 dic5 = { 13 'name':'xiaoming', 14 'age':20, 15 'sex':'male' 16 } 17 dic6 = { 18 'name':'daming', 19 'height':180 20 } 21 dic5.update(dic6)#已有键值则覆盖,没有的键值则添加 22 print(dic5) 23 #result: 24 #{'name': 'daming', 'age': 20, 'sex': 'male', 'height': 180}
1.5、查
1 #查 2 dic7 = { 3 'name':'xiaoming', 4 'age':20, 5 'sex':'male' 6 } 7 print(dic7.keys()) 8 print(dic7.values()) 9 print(dic7.items()) 10 print(dic7['name'])#缺点:若没有这个键,则报错 11 print(dic7.get('name'))#print(dic7.get('name1',None))若没有这个键,则给出提示 12 #result: 13 #dict_keys(['name', 'age', 'sex']) 14 # dict_values(['xiaoming', 20, 'male']) 15 # dict_items([('name', 'xiaoming'), ('age', 20), ('sex', 'male')]) 16 # xiaoming 17 # xiaoming 18 19 #先看一下一个对a,b赋值,并打印出来的例子。 20 a,b=1,2 21 print(a,b) 22 a,b=[1,2]#列表 23 print(a,b) 24 a,b=(1,2)#元祖 25 print(a,b) 26 #result: 27 #1 2 28 #1 2 29 #1 2 30 31 #打印出来的是一个元祖 32 for i in dic7.items(): 33 print(i) 34 #result: 35 #('name', 'xiaoming') 36 #('age', 20) 37 #('sex', 'male') 38 39 #如果想要打印每一个键值,而不是元祖,该怎么做呢?参考上面对a,b的赋值 40 for k,v in dic7.items(): 41 print(k,v) 42 # result: 43 # name xiaoming 44 # age 20 45 # sex male
原文链接:https://www.cnblogs.com/missdx/p/10856615.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Python3字典排序 2019-07-24
- python 嵌套字典取值增强版 2019-07-24
- Python学习日记(三) 学习使用dict 2019-07-24
- Python:字典的高级知识 2019-07-24
- 【第六篇】Python数据类型--list&tuple&dic 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash