Python基础数据类型(五) dict字典
2024-10-07 14:35:47
字典dict{}
字典数字自动排序
enumerate 枚举
for i,k in enumerate(dic,1) #第二个参数默认不写就是0 ---枚举
print(i,k)
dict,以{}来表示每一项用逗号隔开,内部元素用 key:value的形式来保存
定义
dict_l = {'jj':'林俊杰','jay':'周杰伦'}
dic = dict(k=1,k1=123)
查询效率非常高,通过Key来查找元素
内部使用key来计算一个内存地址(暂时),hash算法,key必须是不可变的数据类型(key是可哈希数据类型)
增
1.dic[''] =''
dic = {}
#徐峥:人在囧途
dic['徐峥']='人在囧途' #直接用key往里面存数据
dic = {'徐峥': '人在囧途'}
#如果key 已经存在,那么会替换掉原来的value
2.dic.setdefault('⭐')
dic.setdefault('黄秋生','头文字D')
#如果key存在了,不会执行新增
删
1.pop('key')
dic.pop('key') #指定key删除
2.popitem()
dic.popitem() #Python3.6版本默认删除最后一个键值对
3.del
del dic['key'] #删除
4.clear()
dic.clear() #清空字典
改
1.用key直接去改
dic = {'烟台':'李文浩','潍坊':'聂冰'}
dic['烟台']='李小龙' #dic = {'烟台':'李小龙','潍坊':'聂冰'}
2.update() dic.update({1:2,'a':'a1'})
有则改,无则增
dic = {'烟台':'李文浩','潍坊':'聂冰'}
dic1 = {'烟台':'李小龙','潍坊':'赵秋雨'}
dic.update(dic1)
#dic = {'烟台':'李小龙','潍坊':'赵秋雨'}
查
只能通过建获取值不能通过值获取建
1.最直观的,直接用key,存在就返回键对应的值,如果不存在报错
dic = {'烟台':'李文浩','潍坊':'聂冰'}
print(dic['烟台']) #李文浩
2.get方法,如果key不存在会返回None
print(dic.get('key','自己定义返回内容')) #李文浩
#如果不存在默认返回None,可以自己定义
- setdefault() 1.新增(先看有没有key,有就过,没有就执行新增)2.会根据key把值返回
value = dic.setdefault('key')
print(value) #返回vaule
字典的相关操作
直接for循环打印的是字典的key
1.对字典的遍历 keys()拿到的是 所有的key
dic = {'汪峰':'亚洲舞王','罗志祥':'大陆音乐的半壁江山'}
print(dic.keys()) #像列表但不是列表
for key in dic.keys():
print(dic[key]) #拿到value
2.valus() 拿到的是 所有的valu
prin(dic.values())
3.items() #拿到的是key和value [(key:value),(key:value),]
print(dic.items)
4.遍历字典
for k,v in dic.items():
print(k)
print(v)
5.字典本身是一个可迭代对象,可以直接进行for循环
for k in dic:
print(k)
3.8小数据池
最新文章
- [原]分享一下我和MongoDB与Redis那些事
- Arrays类的十大用法
- php中的编码问题
- 一步步优化JVM六:优化吞吐量
- 查询页面checkbox使用
- 多线程和多进程的区别(C++)
- Python3调用企业微信用于告警
- 2018年Java实习春招总结
- C#中设置窗口在最前显示而其他窗口不能使用
- JVM及class文件加载问题-学习使人快乐4
- Tomcat 部署外部系统
- git 28原则
- [js]js的表单验证onsubmit方法
- mysqlli
- KVM虚拟机的创建、管理与迁移
- 【Java知识点专项练习】之 接口和抽象类的区别
- c3p0--常见异常
- Win server 2016 升级 Win server 2019 [测试验证]
- EM(Expectation Maximization)算法
- `Facebook.Unity.Settings' has already been imported error solution
热门文章
- Linux 安装 JDK 详解
- CentOS7安装Nginx及其相关
- MySQL6
- FJoi2017 1月20日模拟赛 直线斯坦纳树(暴力+最小生成树+骗分+人工构造+随机乱搞)
- 最长上升子序列的回溯 ZOJ 2432
- noip模拟赛 立方数2
- vue.js组件之间通讯的数据双向绑定----父亲把数据传递给儿子,儿子更改数据后,重新发送给父亲,父亲数据更改后,属性会重新发送个儿子,儿子刷新新数据
- [K/3Cloud]关于";选单";操作
- sql-server-storage-internals
- delphi不同版本字符串类型的演化