python中dict使用方法详解


Posted in Python onJuly 17, 2019

dict的特性

dict是python中的一个可变的数据类型,用{}表示,dict的key必须是不可变的数据类型,而value的数据类型可以任意。

格式:{key:value,key:value,key:value}
注: 键值对如果是字符串使用单引号,最后一个键值对没有逗号

dict的优点

①:查询速度快,可以二分查找

②:key是不可以重复的

注:

 

不可变数据类型: 元组,bool,int , str 可以hash set

可变数据类型: dict ,list

dict的方法

1,增加的方法:dict有两种增加的方法

(1),如果没有的键值对,则进行添加,如果有,则将值进行覆盖

dict1={'name':'jinxin','age':18,'male':'男'}
print(dict1)
dict1['high']=185
print(dict1) # {'name': 'jinxin', 'age': 18, 'male': '男', 'high': 185}
dict1['age']=16
print(dict1) # {'name': 'jinxin', 'age': 16, 'male': '男', 'high': 185}

(2),如果有键值对,不做任何改变,没有键值对,才进行添加

dict1.setdefault("weight")
print(dict1) #{'name': 'jinxin', 'age': 16, 'male': '男', 'high': 185, 'weight': None}
dict1.setdefault('weight','65kg')
print(dict1) #{'name': 'jinxin', 'age': 16, 'male': '男', 'high': 185, 'weight': None}
dict1.setdefault('address','北京')
print(dict1) #{'name': 'jinxin', 'age': 16, 'male': '男', 'high': 185, 'weight': None, 'address': '北京'}

2,dict的删除方法

(1),使用pop()删除,如果有键,则删除,如果没有则会报错,如果不希望出现报错信息,可以在删除的后面添加信息

delDict={'name': 'jinxin', 'age': 16, 'male': '男', 'high': 185, 'weight': None, 'address': '北京'}
# delDict.pop('age') #dict的删除操作是有返回值的
print(delDict.pop('age')) # 16
print(delDict) #{'name': 'jinxin', 'male': '男', 'high': 185, 'weight': None, 'address': '北京'}
print(delDict.pop('职业','没有此键')) #没有此键

(2),使用popitem()删除,随机删除,返回的是一个元组,元组里面存储的删除的键值,推荐使用pop()方法进行删除

print(delDict.popitem()) # ('address', '北京')

随机删除,返回值是删除的键值对

print(delDict) #{'name': 'jinxin', 'male': '男', 'high': 185, 'weight': None}

(3),使用del()删除,del()可以删除整个字典,也可以删除字典的某个键,如果删除的键不存在,则会出现报错

del delDict['name']
print(delDict) #{'male': '男', 'high': 185, 'weight': None}
#使用del清空列表
del delDict
print(delDict) #delDict已经删除,报错

(4),清空列表也可以使用clear()

3,dict的修改

#直接修改
updateDict={'name':'jinxin','age':18,'male':'男'}
updateDict['name']='Jordan'
print(updateDict['name']) #Jordan

#调用update()修改
dictDemo={'name':"Jordan",'age':18}
dictDemo1={'address':'北京海淀','age':22}
dictDemo.update(dictDemo1)
print(dictDemo)

4,字典的查询

(1)查询字典的键:调用keys()方法

查询字典的值:调用values()方法

# 字典的查
dict1={'name':'jinxin','age':18,'male':'男'}
print(dict1.keys()) #dict_keys(['name', 'age', 'male'])
print(dict1.values()) #dict_values(['jinxin', 18, '男'])
print(dict1.items())# dict_items([('name', 'jinxin'), ('age', 18), ('male', '男')])

#打印dict1的键
for i in dict1.keys():
  print(i ) # name age value

#打印dict的值
for v in dict1.values():
  print(v) #jinxin 18 男

#打印字典的键值:

dict1={'name':'jinxin','age':18,'male':'男'}

for i in dict1.items():
  print(i) # ('name', 'jinxin') ('age', 18) ('male', '男')
  
for k,v in dict1.items():
  print(k,v) # name jinxin age 18  male 男

(2),字典的get()方法:使用get()方法可以查询某个键是否存在,如果不存在此键,则会返回None,但是可以在get()方法中添加信息避免出现None

dict1={'name':'jinxin','age':18,'male':'男'}
print(dict1.get('name')) #jinxin
print(dict1.get('address')) # None
print(dict1.get('address','没有此键')) #没有此键

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中规范定义命名空间的一些建议
Jun 04 Python
Flask框架响应、调度方法和蓝图操作实例分析
Jul 24 Python
如何实现Django Rest framework版本控制
Jul 25 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
python爬虫模块URL管理器模块用法解析
Feb 03 Python
如何在django中实现分页功能
Apr 22 Python
keras-siamese用自己的数据集实现详解
Jun 10 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
Jul 30 Python
python使用ctypes库调用DLL动态链接库
Oct 22 Python
PyQt5通过信号实现MVC的示例
Feb 06 Python
Python 高级库15 个让新手爱不释手(推荐)
May 15 Python
python中tkinter的应用:修改字体的实例讲解
Jul 17 #Python
python对矩阵进行转置的2种处理方法
Jul 17 #Python
使用Filter过滤python中的日志输出的实现方法
Jul 17 #Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 #Python
python中update的基本使用方法详解
Jul 17 #Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 #Python
使用Python和Scribus创建一个RGB立方体的方法
Jul 17 #Python
You might like
mysql 性能的检查和优化方法
2009/06/21 PHP
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
php 浮点数比较方法详解
2017/05/05 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
用JS写的一个TableView控件代码
2010/01/23 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
python服务器端收发请求的实现代码
2014/09/29 Python
flask入门之文件上传与邮件发送示例
2018/07/18 Python
python3实现字符串操作的实例代码
2019/04/16 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
python 解决print数组/矩阵无法完整输出的问题
2020/02/19 Python
python使用列表的最佳方案
2020/08/12 Python
巴西网上药房:onofre
2016/11/21 全球购物
高中生职业规划范文
2014/03/09 职场文书
优秀纪检干部材料
2014/08/27 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
python内置进制转换函数的操作
2021/06/02 Python
Python实现机器学习算法的分类
2021/06/03 Python
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers