python.day05

一 字典 

定义:dict, 以{},表示.每一项用逗号隔开,内部元素用key:value的形式来保存数据.例如

{"jj":"林俊杰","jay':周杰伦"}

特点:查询效率非常高,通过key来查找元素

内部使用key来计算一个内存地址(暂时),hash算法,key必须不可变的数据类型(key必须是可hash的数据类型)可hash就是不可变

已知的可hash数据:int str tuple bool

不可hash的类型:list dist set

语法 dict={key1:value1,key2;value2....}

注意;key必须是不可hash的(不可变的),value没有要求(可以保存任意的数据)

       dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. ⽽而hash表
       不是连续的. 所以不能进⾏行行切片⼯工作. 它只能通过key来获取dict中的数据

二 新增

dic={}
dic["徐峥"]="人在囧途" #如果dict中没没有key,就会新增一个key:value的组合进去
dic["黄渤"]="疯狂的石头"
dic["王宝强"]="天下无贼"
dic["王宝强"]="士兵突击" #如果key已经存在.那么会替换掉原来的value
dic.setdefault("黄丘生")
dic.setdefault("黄丘生","无间道")# 如果key存在了 不会执行新增
print(dic)

三 删除

dic = {"黄日华": "天龙八部", "吕颂贤": "笑傲江湖", "苏有朋": "倚天屠记"}
# #dic.pop("吕颂贤") #指定删除
# dic.popitem()#随即删除
# dic.clear() # 清空字典
# print(dic)

四 修改

dic = {"刘能": "王小利", "赵四": "刘晓光", "王木生": "范伟", "谢大脚": "于月仙", "李大国": "小鬼"}
dic['王木生'] = "刘伟"
# print(dic) 替换
dic2 = {"刘能": "大阳哥", "赵四": "github", "王木生": "汪峰", "谢大脚": "冯提莫", "王大拿": "金老板"}
dic.update(dic2) #相同的换掉,不一样的加上去
print(dic)

五 查询

 dic={"刘能":"大阳哥","赵四":"github","王木生":"汪峰"}
# #1.最直观,直接用key
# print(dic["刘能"])#当这个key不存在时会报错
# # # 2.get
# print(dic.get("谢大脚",))##没有key返回none
# # #3.
# #setdefault(先新增 看看有没有key,如果有就过,没有执行新增 @根据key把值返回
dic={}
dic["盖伦"]="德玛西亚之力"
value = dic.setdefault("feiaona", "无双剑姬")  # 新增
value2 = dic.setdefault("盖伦", "刘伟")  # 由于已经存在了key。 所以新增不执行。 直接查询结果
value3 = dic.setdefault("薇恩", "")
print(dic)

相关操作

主要是遍历字典

=相关操作
dic = {"汪峰": "大陆音乐半壁江山", "周杰伦": "亚洲音乐天王", "罗志祥": "亚洲舞王"}
#print(dic.values()) #得到 dict_keys(['汪峰', '周杰伦', '罗志祥']) 像列表但不是列表 可以当列表来看(来用)#通过这种方法对字典的遍历一个个都拿出来
#第一种方法:
# for key in dic.keys():
#     print(key) # 得到 key
#     print(dic[key]) #得到value     daic[key]表示value#上边是对key的遍历
#对value的遍历# print(dic.values())
# for value in dic.values():
#    print(value)# 只能拿出value不能拿出key 也就这样了#既然拿到key,拿到value
#能不能一对一对拿#亦可以遍历字典
# print(dic.items())  #items每一项 ; 拿到value和拿出key
# for item in dic.items():
#     print(item) #拿到元组类型的
#     print(item[0],item[1]) #拿到key和value
#
# a,b=10,20 #结构\解包 元组列表都有
# print(a)
# print(b)#这个也可以遍历字典
#
# print(dic.items())  # 拿到的是key和value
for k, v in dic.items(): # 当需要遍历字典. 在操作中涉及到key和value的时候.print(k) # 元组print(v)# 字典本身是一个可迭代对象,可以直接进行for循环
for el in dic:  # 直接拿到keyprint(el)print(dic[el])

六 字典的嵌套

给个例子

wf = {"name": "汪峰","age": 48,"成名曲": "春天里","wife": {"name": "章子怡","age": 39,"工作": "演员"},"children":[{"num": "001", "name": "汪一", "hobby": "唱歌"},{"num": "002", "name": "汪二", "hobby": "演戏"} # wf['children'][1]['name']]
}# wf['wife']['age'] = wf['wife']['age'] + 10
# print(wf)

 

转载于:https://www.cnblogs.com/systemsystem/p/9606067.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388581.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

滞后分析rstudio_使用RStudio进行A / B测试分析

滞后分析rstudioThe purpose of this article is to provide some guide on how to conduct analysis of a sample scenario A/B test results using R, evaluate the results and draw conclusions based on the analysis.本文的目的是提供一些指南,说明如何使用R对…

Linux程序实现弹框,jQuery实现弹出框 效果绝对美观

使用到JQeury写的几个比较好的Popup DialogBox,觉得不错。和大家分享下。使用它们结合.net可以实现很好的效果。1.jqpopup:是个可以拖拽,缩放并可以在它上面显示html页面上任何一个控件组合的控件。可以和后面的主页面通信。使用方法:先调用这几个js文件,可以自提供的下载地址下…

Interesting visualization tools for profiling.

Interesting visualization tools for profiling. http://dtrace.org/blogs/brendan/2012/03/17/linux-kernel-performance-flame-graphs/ http://dtrace.org/blogs/brendan/2013/07/01/detecting-outliers/

MySQL的事务-原子性

MySQL的事务处理具有ACID的特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。 1. 原子性指的是事务中所有操作都是原子性的,要…

codeforces CF438D The Child and Sequence 线段树

$ \Rightarrow $ 戳我进CF原题 D. The Child and Sequencetime limit per test: 4 secondsmemory limit per test: 256 megabytesinput: standard inputoutput: standard outputAt the childrens day, the child came to Pickss house, and messed his house up. Picks was ang…

大型网站架构演变

今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告诉我们事物是在发展中不断前进的,网站架构也是随着业务的扩大、用户的需求不断完善的,下面是一个网站架构逐步…

linux的磁盘磁头瓷片作用,Linux 磁盘管理

硬盘物理结构以下三张图片都是磁盘的实物图,一个磁盘是由多块堆放的瓷片组成的,所以磁头的结构也是堆叠的,他要对每一块瓷片进行读取,磁头是可以在不同磁道(在瓷片的表现为不同直径的同心圆,磁道间是有间隔的)之间移动…

多层插件开发框架

先来几张效果图: 1.基于DATASNAP构建的中间件,中间件已经经过实际项目的检验,单台中间件可支持几千客户端,中间件可集群 2.中间件支持同时连接ACCESS\SQL SERVER\MYSQL\ORACLE。。。多种数据库系统 3.中间件同时支持TCP/IP,HTTP&a…

unity3d 可视化编程_R编程系列:R中的3D可视化

unity3d 可视化编程In the last blog, we have learned how to create “Dynamic Maps Using ggplot2“. In this article, we will explore more into the 3D visualization in R programming language by using the plot3d package.在上一个博客中,我们学习了如何…

linux无法设置变量,linux – crontab在作业之前无法设置变量

我的crontab看起来像:rootslack13x64:~# crontab -l -u dnd# some variablesSHELL/bin/bashPATH/bin:/usr/bin:/usr/local/bin:/home/dnd/binMAILTOroot# Actual jobs40 20 * * * /home/dnd/cron_jobs/some_job.sh55 23 * * Fri /home/dnd/cron_jobs/other_job.py作…

详谈P(查准率),R(查全率),F1值

怎么来的? 我们平时用的精度accuracy,也就是整体的正确率 acc predict_right_num / predict_num 这个虽然常用,但不能满足所有任务的需求。比如,因为香蕉太多了,也不能拨开人工的一个一个的看它的好坏(我爱吃啊&#…

网站系统分布式架构

写这篇文章之前,需要有些论点和论据,以表明网络系统在极端情况下的情况,先来看看世界上排名靠前的网站。 1、 FaceBook 2、 Google 从这两个站可以看出,当下比较极限的日均访问量在2~3亿,PV值…

linux文件系统学习,linux文件系统之tmpfs学习

关于文件系统,我们在下面的博文中已有做简单的介绍,外链网址已屏蔽本篇博文我们学习的是文件系统中的tmpfs。tmpfs是一种伪文件系统,它是从DRAM中创建出来的,相比于磁盘而言,其具有更高的访问效率。如何创建一个tmpfs&…

python 数据科学 包_什么时候应该使用哪个Python数据科学软件包?

python 数据科学 包Python is the most popular language for data science. Unfortunately, it can be tricky to know which of the many data science libraries to use when. ☹️Python是数据科学中最流行的语言。 不幸的是,要知道何时使用许多数据科学库中的哪…

Go语言开发环境配置

http://blog.csdn.net/hil2000/article/details/41261267/ 一.我为什么要学习go语言 当今已经是移动和云计算时代,Go出现在了工业向云计算转型的时刻,简单、高效、内 置并发原语和现代的标准库让Go语言尤其适合云端软件开发(毕竟它就是为此而…

微软研发致胜策略

第一章奠定基础 1.千万不要把程序设计师的时间浪费在改善产品以外的工作上。 2.保护程序设计师不受任何阻碍和干扰。 3.永远记得自己真正的目标,然后让团队用最有将效又最愉快的方法把它完成。 4.理清详细的项目目…

熊猫tv新功能介绍_您应该知道的4种熊猫绘图功能

熊猫tv新功能介绍Pandas is a powerful package for data scientists. There are many reasons we use Pandas, e.g. Data wrangling, Data cleaning, and Data manipulation. Although, there is a method that rarely talks about regarding Pandas package and that is the …

CPP_封装_继承_多态

类的三方法:封装,继承,多态。封装:使用一整套方法去创建一个新的类型,这叫类的封装。继承:从一个现有的类型基础上,稍作改动,得到一个新的类型的方法,叫类的继承。多态&a…

win与linux渊源,微软与Linux从对立走向合作,WSL是如何诞生的

原标题:微软与Linux从对立走向合作,WSL是如何诞生的正文Windows Subsystem for Linux(WSL)的开发,让微软从Linux的对立面走向合作,并且不断加大对开源社区的支持力度。而作为微软历史上的重要转折点,外界对WSL技术在Pr…

文件编辑器 vi

1、关于文本编辑器; 文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice ... ... ,文本模式下的编辑器有vi、vim(vi的增强版本)和nano ... ... vi和vim是我们在Linux中最常用的编辑器。我们有必要介绍一下vi&a…