python_0基础开始_day05
第五节
一、字典
python的数据结构之一
字典 —— dict
定义:dic = {"key":"dajjlad"}
作用:存储数据,大量,将数据和数据起到关联作用
字典是可变的数据类型,无序的
所有的操作都通过键
# 键:必须是不可变的数据类型(可哈希),且唯一 不可哈希就是可变数据类型# 值:任意dic = {"10":"苹果手机", # 键 值 对 "11":"苹果手机", "15”:"小米手机", "15":"华为手机", (1,):"oppo手机", }
1.1字典的增:
暴力添加
dic = {'a': '上天', 'b': ['入地', '通幽'], 'c': '吃饭', 'd': '救苦救难'}dic["二狗"] = "我的太阳" # 添加的是一个键值对dic["腾格尔"] = ["来自草原的沙尘暴","音乐界的泥石流"]# 新的键如果在字典中没有,那会添加到最后字典的后面;# 如果有,那将新值替换旧值有则不添加,无则添加
dict.setdefaullt(键,值)
dic = {'a': '上天', 'b': ['入地', '通幽'], 'c': '吃饭', 'd': '救苦救难'}dic.setdefault("b",["沿着","江山","起起","伏"]) # 键存在,所以不添加dic.setdefault("武器",["刀","枪","棍","棒","斧"])# 键为新,在最后一个键值对后面添加# setdefault 添加分为2步:# 1,先查看键是否在字典# 2,不存在的时候进行添加
1.2字典的删除:
pop(键) —— 通过键删除,具有返 回值
dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}dic.pop("1") # 删除了 "1":"上树" 这个键值对clear() —— 清空
dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}dic.clear() # 清空该字典,保留空字典del —— 删除
del dict —— 删除的是容器
del dict["键"] —— 通过键删除
dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}del dic # 删除的是整个字典del dic["3"] # 只删除 "3":"开黑" 这个键值对
1.3字典的改
字典名[键] = 值
# 和字典的暴力添加一样dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}dic["2"] = "星宿老仙,法力无边" # 直接定位键,修改值字典名.update(新字典)——在最后一个键值对后面,迭代添加
dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}dic1 = {"天山派":"星宿老仙,法力无边","少林":"龙抓手"}dic.update(dic1)print(dic) #{'1': '上树', '2': '遛狗', '3': '开黑', '4': '打团', '天山派': '星宿老仙,法力无边', '少林': '龙抓手'}dic1.update(dic)print(dic1)#{'天山派': '星宿老仙,法力无边', '少林': '龙抓手', '1': '上树', '2': '遛狗', '3': '开黑', '4': '打团'}
1.4字典的查
字典名.get(键,找不到的换回None)
dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"} print(dic.get("5")) # 返回 None print(dic.get("5","找不到啊")) # 返回 找不到啊 print(dic.get("2")) # 返回 遛狗字典名.setdefault(键)
dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"} print(dic.setdefault("3")) # 返回开黑 print(dic.setdefault("77")) # 返回 None print(dic["4"]) # 也可直接查找,没有就是报错字典名.keys() ——所有的键,获取到的是一个高仿列表
字典名.values() —— 所有的值,获取到的是一个高仿列表
intems() —— 键值
注意:高仿列表支持迭代,不支持索引
dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"} print(dic.keys()) # 所有的键,获取到的是一个高仿列表 print(dic.valuse()) # 所有的值,获取到的是一个高仿列表
for循环,返回的是字典的键
dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"} for i in dic: print(i) # 循环出的是字典的键
1.5解构
在字典中返回的是键
a,b = 1,2
print(a,b)
# 结果:
# 1 2
a,b = ('你好','世界')
print(a,b)
# 结果:
# 你好 世界
a,b = ['你好','大飞哥']
print(a,b)
# 结果:
# 你好 大飞哥
a,b = {'汪峰':'北京北京','王菲':'天后'}
print(a,b)
# 结果:
# 汪峰 王菲
解构在字典中的作用:
dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"} for k,v in dic.items(): print('这是键',k) print('这是值',v) """ 结果: 这是键 1 这是值 上树 这是键 2 这是值 遛狗 这是键 3 这是值 开黑 这是键 4 这是值 打团 """*__是一个万能值,万能接受
lis = [1,2,3,4,5,6,7,8]# 取出来1,2,5 a,b,c,d,e,*__ = lis print(a,b,e) # 结果 1 2 5
1.6字典的嵌套
dic = {11:{1:{"秦":"嬴政","秦二世","李斯","商鞅","章邯","蒙恬"},
2:{"汉":"刘邦","韩信","卫青","霍去病"}
3:{"三国":"魏","蜀","吴"}},
22:{1:{"歌唱家":{"刘欢":["我和你","弯弯的月亮"]}},
2:{"邓紫棋":["泡沫","喜欢你","天堂","光年之外"]},
3:{"腾格尔":["隐形的翅膀","卡路里","日不落"]}},
33:{1:{"蔡徐坤":{"唱":["鸡你太美"],"跳":["钢管舞"],"rap":["大碗面"],"篮球":("NBA形象大使")}},
2:{"JJ":{"行走的CD":["江南","曹操","背对背拥抱","小酒窝","不潮不花钱"]}},
3:{"Jay":{"周董":["菊花台","双节棍","霍元甲"]}}},
44:{1:{"韦小宝":{"双儿":"刺客","建宁":{"公主":{"吴三桂":"熊"}},"龙儿":{"教主老婆":"教主"}}}}
}
print(dic[201][1]["韦小宝"]["建宁"]["公主"]["吴三桂"])# 熊
print(dic[103][1]["蔡徐坤"]["跳"][0])# 钢管舞
print(dic[102][2]["邓紫棋"][1]) # 黑风雷
后续还会持续更新,从入门到放弃 ^.^。
python_0基础开始_day05的更多相关文章
- python_0基础学习_day02
第二节 一,while while也称为无限循环.死循环 while 条件: 缩进 循环体 应用领域:音乐播放:单曲循环,列表循环,随机播放(也是有规律的) 登陆界面:…… 数学计算:1~100的和, ...
- python_0基础学习_day01
Python是一门动态解释型的强类型定义语言 一.变量 变量命名规则 由数字.字母.下划线组成 不能以数字开头 要具有描述性 要区分大小写 禁止使用python的关键字(在pycharm中关键字明明变 ...
- python_0基础开始_day07
第七节 1,基础数据类型补充 str: print(str.capitalize()) —— 首字母大写 print(str.title()) —— 每个单词的首字母大写 print(str.swap ...
- python_0基础开始_day06
第六节 1.小数据池 ==,is,id ==:查看等号两边的值是否一样 a = 9b = 9print(a == b) # 返回Truec = "dog"d = "dog ...
- python_0基础开始_day03
第三节 一.整形和布尔值的转换 int整型 python3: 全部都是整型 python2: 整型,长整型long 十进制转换二进制 # 将十进制的168转换为二进制 #得出结果 将十进制的168转 ...
- python_0基础开始_day04
第四节 一.列表 list 数据类型之一,存储大量的,不同类型的数据 列表中只要用逗号隔开的就是一个元素 有序可变的. 1.1列表的索引 列表和字符串一样也拥有索引,但是列表可以修改: lst = [ ...
- python_0基础开始_day13
第十三节 一,匿名函数 匿名函数 == 一行函数 lambda == def == 关键字 函数体中存放的是代码 生成器体中存放的也是代码 就是yield导致函数和生成器的结果不统一 lambda x ...
- python_0基础开始_day12
第十二节 一,生成器 生成器的核心:生成器的本质就是迭代器 迭代器是python自带的 生成器是程序员自己写的一种迭代器 在python中有三种方式来创建生成器: 基于函数编写 推导式方式编写 pyt ...
- python_0基础开始_day11
第十一节 一,函数名的第一类对象 函数名当作值,赋值给变量 print(函数名) 查看看书的内存地址 函数名可以当作容器中的元素 lis = []dic = {}def func(): prin ...
随机推荐
- Adding Cues (线索、提示) to Binary Feature Descriptors for Visual Place Recognition 论文阅读
对于有想法改良描述子却无从下手的同学还是比较有帮助的. Abstract 在这个文章中我们提出了一种嵌入continues and selector(感觉就是analogue和digital的区别)线 ...
- 使用SSH+SFTP操作终端全解析,告别XShell
1.前言 在Windows系统下操作远程服务器的方式很多,比如XShell+XFTP组合,亦或是PuTTY+WinSCP组合,但在Mac系统下登陆远程服务器,并没有这些工具供我们使用.相比较而言,在M ...
- 【POJ - 2386】Lake Counting (dfs+染色)
-->Lake Counting 直接上中文了 Descriptions: 由于近日阴雨连天,约翰的农场中中积水汇聚成一个个不同的池塘,农场可以用 N x M (1 <= N <= ...
- Codeforces Gym101205D:Fibonacci Words(KMP+递推)
Gym 101205D 题意:f[0] = "0", f[1] = "1",接下来f[i] = f[i-1] + f[i-2],相当于字符串拼接.然后给出一个n ...
- Codeforces 758B:Blown Garland(模拟)
http://codeforces.com/problemset/problem/758/B 题意:给出一个字符串,每4个位置对应一个颜色,如果为‘!’的话,代表该灯泡是坏的,问最后每个颜色坏的灯泡的 ...
- .Net 通过设置Access-Control-Allow-Origin来实现跨域访问
目录 # 前言 # 为每个API接口单独添加响应头 1.针对 ASP.NET MVC 项目的Controllers 2.针对 ASP.NET Web API项目的Controllers 3.针对ASP ...
- 在vue项目中遇到关于对象的深浅拷贝问题
一.问题 项目里新添加了一个多选的功能,其显示的数据都是从后端返回过来的,我们需要在返回来的数据外再额外添加一个是否选中的标记,我的选择是在返回正确的数据时将标记添加进去,然后push到数组中.然后就 ...
- WebGL2系列之多采样渲染缓冲对象
在很久很久以前,盘古开辟了天地,他的头顶着天,脚踩着地,最后他挂了.他的毛发变成了森林,他的血液变成了河流,他的肌肉变成了大地......卡! 哦,不对,在很久很久以前,你属于我,我拥有你.你还有没有 ...
- Ubuntu系统 apt-get update失败解决办法
使用apt-get的时候发现ubuntu和阿里云均已经不提供该版本的源,所以需要找到其他的替代源. 使用的ubuntu版本是14.10,属于非LTS(长期支持版本),因此前一段时间还可以使用apt-g ...
- 堡垒机-jumpserver
目录 官方网站 Jumpserver 软件包环境要求: 环境 手动本地jumpserver-服务端搭建 初始化一些系统环境设置: 安装相关软件 安装 组件 自建服务器极速安装步骤 0. 防火墙.Sel ...