【Python21天学习挑战赛】字典 小数据池
活动地址:CSDN21天学习挑战赛
开头一叙:
无论是以后学习需要或者是三年后的工作需要,都需要用到python的工具,也接着这次活动的机会,把python系统的学一遍。跟着大佬,让python知识从入门到精通。
文章目录
- 字典—dict
- 字典定义
- 字典的操作:增、删、改、查
- 字典的其他操作
- 小数据池
- 代码块
- is 与 == 区别
- 小数据池
字典—dict
作用:存储数据的,存储大量数据,可变的数据类型,无序的;比列表快。将数据和数据之间进行关联。
字典定义
dic={"孙悟空":80,"唐僧":100,"猪八戒":89,True:123,(12,2,3):["dada","憨憨"]} #字典中逗号分割是一个元素# "孙悟空"(键):80(值) --键值对print(dic)
{'孙悟空': 80, '唐僧': 100, '猪八戒': 89, True: 123, (12, 2, 3): ['dada', '憨憨']}
- 字典的键:必须是可哈希的,也就是不可变的数据类型(字符串就是不可变的数据类型)–避免哈希冲突使用开放寻址法。 字典的键要求唯一,若是有重复的后边的值将前面的值覆盖
- 字典的值:可以任意
- 和列表的区别:
- 列表是有序的对象集合
- 字典是无序的对象集合
字典的操作:增、删、改、查
1、增:
(1)暴力添加
dic={"孙悟空":80,"唐僧":100,"猪八戒":89}
dic["白骨精"]=78 #暴力添加
print(dic)
{'孙悟空': 80, '唐僧': 100, '猪八戒': 89, '白骨精': 78}
(2)dic.setdefault():若白骨精这个键去字典查询,如果不存在执行添加,存在就不添加了
dic.setdefault("孙悟空",78)
print(dic)
# 输出:(1){'孙悟空': 80, '唐僧': 100, '猪八戒': 89}
dic.setdefault("白骨精",78)
print(dic)
# 输出: (2){'孙悟空': 80, '唐僧': 100, '猪八戒': 89, '白骨精': 78}
2、删
(1)方式1、通过键值对的键去删除键
dic={"孙悟空":80,"唐僧":100,"猪八戒":89}
del dic["孙悟空"]
print(dic)
{'唐僧': 100, '猪八戒': 89}
(2)通过键值对的键去删除键,有返回值,返回的是被删除的值
print(dic.pop("孙悟空") )
# 输出:80
print(dic)
# # 输出:{'唐僧': 100, '猪八戒': 89}
(3)dic.clear()
dic.clear()
print(dic)
# 输出:{}
3、改
(1)当字典中没有某个键值对的时候就是添加,存在的话就是修改
dic={"孙悟空":80,"唐僧":100,"猪八戒":89}
dic["孙悟空"]="孙猴子" #当字典中没有某个键值对的时候就是添加,存在的话就是修改
print(dic)
# 输出:{'孙悟空': '孙猴子', '唐僧': 100, '猪八戒': 89}
(2)dic.update()
dic.update({"黄梅眉大王":89,"观音":56,"孙悟空":100})
print(dic)
# 输出:{'孙悟空': 100, '唐僧': 100, '猪八戒': 89, '黄梅眉大王': 89, '观音': 56}
dic1={"黄梅眉大王":89,"观音":56,"孙悟空":100}
dic1.update(dic)
print(dic1)
# 输出:{'黄梅眉大王': 89, '观音': 56, '孙悟空': 80, '唐僧': 100, '猪八戒': 89}
4、查
dic={"孙悟空":80,"唐僧":100,"猪八戒":89}
# for i in dic: #循环获取的是字典中每个键值对的键
# print(i)
print(dic.get("孙悟空")) #通过键值对中的键获取键值对的值
print(dic.get("沙僧")) #若字典没有对应的键,返回None
# 输出:80
# None
字典的其他操作
dic={"孙悟空":80,"唐僧":100,"猪八戒":89}
# for i in dic:
# print(i,dic.get(i)) #获取所有键值对
print(dic.keys()) #高仿列表,获取所有的键,支持for循环遍历,不支持索引
# 输出:dict_keys(['孙悟空', '唐僧', '猪八戒'])
print(dic.values()) #高仿列表,获取所有的值
# 输出:dict_values([80, 100, 89])
print(list(dic.values()))# 转换成列表
# 输出:[80, 100, 89]
print(dic.items())
for i in dic.items():print(i)
dict_items([('孙悟空', 80), ('唐僧', 100), ('猪八戒', 89)])
('孙悟空', 80)
('唐僧', 100)
('猪八戒', 89)
字典的嵌套:
dic={1001:["刘备","关羽","张飞"],1002:{"汪峰":{"前妻1":["大烧饼"],"前妻2":["熊大","熊二"],"国际章":"肉丝"}},1003:{"陈冠希":["阿娇","阿萨","张柏芝"]},1004:{"韦小宝":[{"教主夫人":["教主"]},{"阿柯":"刺客"},{"双儿","天地会"},{"爱新觉罗建宁":"公主"}]}}
# 找出教主
print(dic[1004]["韦小宝"][0]['教主夫人'][0])
# 找出熊二
print(dic[1002]["汪峰"]["前妻2"][1])
小数据池
代码块
1、定义:一个模块,一个函数,一个类,一个文件等都是一个代码块。
在python解释器中,每一行代码就是一个代码块
is 与 == 区别
1、== 是判断两边的值是否相等
a=10
b=10
print(a==b)
# 输出:True
2、is是比较两边的地址内存是否相等
a=10
b=10
print(a is b) #is基于内存地址进行判断
# 输出:True
小数据池
1、什么是小数据池
答:小数据池,也称为小整数缓存机制,或者称为驻留机制等等
针对整数:
答:Python自动将-5~256的整数进行了缓存,当你将这些整数赋值给变量时,并不会重新创建对象,而是使用已经创建好的缓存对象。
针对字符串:
答:在同一代码块下,只有内容相同就采用相同的内存地址,乘法的时候总长度不能超过20,乘法的时候中文,特殊符合乘以0或者1
针对布尔值:
在同一代码块下,只有内容相同就采用相同的内存地址
【Python21天学习挑战赛】字典 小数据池相关推荐
- python我想对你说_python学习第4天----is和==区别、小数据池、编码解码
1.is和==的区别 1)==比较的是左右两边的值,无论是字符串.数字.列表,元组.若两边的值相等,则返回True a = "zdz"b= "zdz" prin ...
- 相识python 之小数据池 集合
⼀一. ⼩小数据池 在说⼩小数据池之前. 我们先看⼀一个概念念. 什什么是代码块: 根据提示我们从官⽅方⽂文档找到了了这样的说法: A Python program is constructed fr ...
- python代码块-python小数据池,代码块的最详细、深入剖析
一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了,什么是内存地址呢? 你只要创建一个数据(对象)那么都会在内存中开辟一个空间,将这个数据临时加在到内存中,那么这个空间是 ...
- 21天学通python电子版-小数据池,深浅拷贝,集合+菜中菜
小数据池,不同代码块的缓存机制,也称为小整数缓存机制,或者称为驻留机制等等,博主认为,只要你在网上查到的这些名字其实说的都是一个意思,叫什么因人而异. 那么到底什么是小数据池?他有什么作用呢? 前提条 ...
- Python中的驻留机制:小数据池和代码块
Python 中的驻留机制主要有两个:小数据池和代码块.驻留机制并不是学习 Python 过程中特别重要的概念,我们学习小数据池的目的主要有两个方面: 1.解决日后写代码过程中可能出现的疑惑.在后期开 ...
- python小数据池,代码块的最详细、深入剖析
一. id is == 二. 代码块 三. 小数据池 四. 总结 一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了,什么是内存地址呢? 你只要创建一个数据(对象)那么都 ...
- python is 和 == 的区别、解码和编码 小数据池
一 . is 和 == (1) is 是比较两边的内存地址 a=1 print(id(a))b=1 print(id(b))print(a is b) # Truestr='alex' print ...
- Python小数据池,代码块
今日内容一些小的干货 一. id is == 二. 代码块 三. 小数据池 四. 总结 python小数据池,代码块的最详细.深入剖析 一. id is == 二. 代码块 三. 小数据池 四. 总结 ...
- Python小数据池
一. id is == 二. 代码块 三. 小数据池 四. 总结 一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了,什么是内存地址呢? 你只要创建一个数据(对象)那么都 ...
最新文章
- 2014/08/24——升级stepbystep修复tc不刷新问题并加入杭电bc
- boot定时任务开启和关闭 spring_SpringBoot中的定时任务的同步与异步你确定真的知道?...
- java 读取远程文件夹_java读取远程共享文件 | 学步园
- python 四数之和
- CPU 到底是怎么认识代码的?涨姿势了!
- 从 JVM 角度看 Spring 中方法执行过程和内存状态
- 深度Linux对比比,深度Linux10.06 beta1与ylmfOS 3.0简单对比
- Nginx做反向代理的问题
- 参考文献:《基于非合作博弈的风-光-氢微网容量优化配置》 原文程序,多分布式电源参与的混合微电网容量优化配置是微电网设计的一个重要环节
- 网易云会员音乐NCM格式在线转为MP3格式
- 电脑报独家报道:宽带升级全国真相调查
- 车市冷车道 这6款紧凑车苦坐板凳寻伯乐(一)
- 【Python】自动抠图换背景
- 数据压缩实验5-JEPG解码
- Python:利用matplotlib库绘制统计图(饼图、直方图、散点图、极坐标图和网格图)
- 色度学:RGB颜色空间与CMYK颜色空间的比较与图示
- 2 理解网络协议的工作模式
- 疯狂的麦克斯java游戏_疯狂的麦克斯 MAD MAX中文游戏介绍_游戏库_巴士单机游戏...
- 贾跃亭:FF将一如既往地为打造共享智能出行生态的愿景而奋斗
- 狐妖小红娘手游服务器维护,狐妖小红娘手游日常任务速刷攻略