基本数据类型(dict)

目录:

  1.字典的简单介绍

  2.字典增删改查和其他操作

  3.字典的嵌套

一.字典的简单介绍

  字典(dict)是python中唯一的一个映射类型,他是以{}括起来的键值对组成,在dict中key是唯一的,在保存的时候,根据key类计算出一个地址然后将key-value保存在这个地址中这种算法被称作hash算法,所以,切记,在dict中存储的key-value的key必须是可hash的,那么可哈希就意味着不可变,这个是为了能准确的聚酸内存地址而规定

已知的可哈希(不可变)的数据类型:int,str,tuple,bool

不可哈希(可变)的数据类型:list,dict,set

语法:

  {key1:value1,key2:value2......}
注意:key必须是不可变(可哈希)的,value没有要求,可以保存任意数据类型的数据

# 合法 
dic = {123: 456, True: 999, "id": 1, "name": 'sylar', "age": 18, "stu": ['帅 哥', '美⼥女'], (1, 2, 3): '麻花藤'} 
print(dic[123]) 
print(dic[True]) 
print(dic['id']) 
print(dic['stu']) 
print(dic[(1, 2, 3)]) # 不合法 # 
dic = {[1, 2, 3]: '周杰伦'}   # list是可变的. 不能作为key 
# dic = {{1: 2}: "哈哈哈"}     
# dict是可变的. 不不能作为key 
dic = {{1, 2, 3}: '呵呵呵'}    # set是可变的, 不能作为key

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

1.增加

dic = {} 
dic['name'] = '周润发'     # 如果dict中没有出现这个key, 就会新增一个key-value的组 合进dict 
dic['age'] = 18 
print(dic) # 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值 
dic.setdefault('李嘉诚')   # 也可以往里面设置值. 
dic.setdefault("李嘉诚", "房地产")  # 如果dict中已经存在了. 那么setdefault将不会 起作用 
print(dic)

2.删除

ret = dic.pop("jay") 
print(ret) del dic["jay"] 
print(dic) # 随机删除. 
ret = dic.popitem() # 清空字典中的所有内容 
dic.clear()

3.修改

dic = {"id": 123, "name": 'sylar', "age": 18} 
dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"} 
dic.update(dic1)    # 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存 在key, 则新增. 
print(dic) 
print(dic1)

4.查询

查询一般用key来查找具体的数据

print(dic['name']) # print(dic['sylar'])     # 报错 print(dic.get("ok"))print(dic.get("sylar"))      # None print(dic.get("sylar", "⽜牛B"))   # 牛B

5.其他相关操作

dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科比"} 
print(dic.keys())   # dict_keys(['id', 'name', 'age', 'ok']) 不用管它是什么.当 成list来用就行 
for key in dic.keys():print(key) print(dic.values())     # dict_values([123, 'sylar', 18, '科⽐比']) 一样. 也当 list来⽤ for value in dic.values():print(value) 
print(dic.items())  # dict_items([('id', 123), ('name', 'sylar'), ('age', 18), ('ok', '科⽐比')]) 这个东西也是list. 只不过list中装的是tuple 
for key, value in dic.items():  # ?? 这个是解构    print(key, value) # 解构 
a, b = 1, 2 
print(a, b) (c, d) = 3, 4 
print(c, d) e, f = [1, 2, 3]    # 解构的时候注意数量必须匹配 
print(e, f)

三.字典的嵌套

# 字典的嵌套 
dic1 = {"name": "汪峰",    "age": 18,   "wife": {"name": '章⼦子怡',"age": 28},"children": ['第⼀个毛孩子', '第二个毛孩子'],"desc": '峰哥不会告我吧. 没关系. 我想上头条的'} 
print(dic1.get("wife").get("name"))print(dic1.get("children")) print(dic1.get("children")[1])

练习:

dic1 = {'name':['alex',2,3,5],'job':'teacher','oldboy':{'alex':['python1','python2',100]}} 
1,将name对应的列列表追加⼀一个元素’wusir’。 
2,将name对应的列列表中的alex⾸首字⺟母⼤大写。 
3,oldboy对应的字典加⼀一个键值对’⽼老老男孩’,’linux’。
4,将oldboy对应的字典中的alex对应的列列表中的python2删除

 

转载于:https://www.cnblogs.com/LLBFWH/p/9890589.html

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

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

相关文章

自学成才翁_仅因为您是自学成才,并不意味着您必须独自学习。

自学成才翁by Piotr Bakker皮特巴克(Piotr Bakker) 仅因为您是自学成才,并不意味着您必须独自学习。 (Just because you’re self-taught doesn’t mean you have to learn alone.) I am a self-taught designer with no formal training. No art school, no priva…

java 近似值 循环次数,java题求解

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼public class PAI{public static void main(String[] args){int n 700;//Hello World! pai 3.1401640828900845(n 700)System.out.println("Hello World! pai " getPAI(n));//Hello World! pai 3.1430191863875865…

jq匹配偶数行_jquery怎么实现奇偶行不同背景颜色?

做表格的时候,经常要让奇偶行显示不同背景色,一来使表格显得更美观,二来使同行数据查找更快捷方便。通常我们是怎么实现的呢?就是在每个tr标签上加css样式。代码如下所示:.odd {background-color:yellow;}.even {backg…

2016/4/19 ①单个文件上传 ②上传图片后 预览图片

1&#xff0c;f1.php <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title> </head> <body> <!-- 作业:在网上找上传图片预览的代码 上传服务器 再预览--> <fo…

Android项目里集成Cordova详解

2019独角兽企业重金招聘Python工程师标准>>> 一 安装nodejs二 cmd创建Android项目三 导入工程 运行一下四 调用插件五 Android studio环境下将CordovaLib作为依赖导入六 自定义插件七 java类中的一些问题八 在CordovaActivity中添加原生View组件 九 在Fragment里使用…

facebook移动端框架_2016年所有顶级移动应用均归Google或Facebook所有

facebook移动端框架Today Nielsen released their report about the most widely used mobile apps in 2016. The top 8 apps were all owned by just two corporations: Google and Facebook.今天&#xff0c;尼尔森发布了有关2016年使用最广泛的移动应用程序的报告。排名前8的…

php 判断浏览器是ie,js判断是否是ie浏览器

怎么去看浏览器的内核等信息 ---- js的全局对象window子属性navigator.userAgent&#xff0c;这个属性是包含了浏览器信息的相关信息&#xff0c;包括我们需要的浏览器内核navigator.userAgent这个值取出来是个字符串&#xff0c;可以通过string的 indexOf方法或者正则匹配来验…

【JAVA基础】一:聊聊笔试常见到的 “==、equal” 比较是否相等的内在差别

开始本文之前&#xff0c;先让我们记住一个口诀&#xff08;这个口诀只针对基础的类比如String、Integer等&#xff0c;如果是自定义的类&#xff0c;需要看equal的具体实现&#xff09;&#xff1a;equal比较其值&#xff0c; 比较地址 这两天在走查代码的时候发现一个童鞋&am…

postgres 退出_postgresql – 如何修复Postgres以便在突然关闭后启动它?

由于突然断电,在我的本地机器上运行的PostGres服务器突然关闭.重新启动后,我尝试重新启动postgres,我收到此错误&#xff1a;$pg_ctl -D /usr/local / pgsql / data restartpg_ctl: PID file "/usr/local/pgsql/data/postmaster.pid" does not existIs server runnin…

php生成appid,PHP生成腾讯云COS签名

目标使用 PHP 创建 COS 接口所需要的请求签名步骤按照官方示例(也许是我笨&#xff0c;我怎么读都觉得官方文档结构费劲&#xff0c;示例细节互相不挨着&#xff0c;容易引起歧义)&#xff0c;请求签名应用在需要身份校验的场景&#xff0c;即非公有读权限时。否则在请求API接口…

es6作用域

作用域 一个需要注意的地方是&#xff0c;如果参数默认值是一个变量&#xff0c;则该变量所处的作用域&#xff0c;与其他变量的作用域规则是一样的&#xff0c;即先是当前函数的作用域&#xff0c;然后才是全局作用域。 var x 1;function f(x, y x) {console.log(y); }f(2) …

java 有参数的构造函数如何注入_Spring5参考指南:依赖注入

依赖注入依赖注入就是在Spring创建Bean的时候&#xff0c;去实例化该Bean构造函数所需的参数&#xff0c;或者通过Setter方法去设置该Bean的属性。Spring的依赖注入有两种基于构造函数的依赖注入和基于setter的依赖注入。基于构造函数的依赖注入构造函数的注入是通过构造函数的…

深度学习去燥学习编码_我们问了15,000个人,他们是谁,以及他们如何学习编码

深度学习去燥学习编码More than 15,000 people responded to the 2016 New Coder Survey, granting researchers an unprecedented glimpse into how adults are learning to code.超过15,000人对2016年新编码器调查做出了回应&#xff0c;使研究人员对成年人如何学习编码有了前…

CentOS 7 vi编辑命令

用vi打开一个yum文件 vi /usr/bin/yum 按 i 键后 进入insert模式&#xff0c;进入insert模式后才能进行修改 修改完成后 按esc键进入command模式&#xff0c; 然后:wq 保存文件并退出vi&#xff08;注意先冒号&#xff09; 保存命令 按ESC键 跳到命令模式&#xff0c;然后&…

C#学习笔记四: C#3.0自动属性匿名属性及扩展方法

前言 这一章算是看这本书最大的收获了, Lambda表达式让人用着屡试不爽, C#3.0可谓颠覆了我们的代码编写风格. 因为Lambda所需篇幅挺大, 所以先总结C#3.0智能编译器给我们带来的诸多好处, 下一遍会单独介绍Lambda表达式. 这篇主要包括的内容有: 自动属性,隐式类型,对象集合初始化…

array keys php,php array_keys与array_search的简单使用

函数说明array_keys():返回数组中所有的键名。array_search():在数组中搜索给定的值&#xff0c;如果成功则返回相应的键名。//根据一个key返回关联数组中的另一个key,并且不使用foreach// function array_key_relative(array $array, string $current_key, int $offset)functi…

RESTful服务的第三部分:HATEOAS和Richardson成熟度模型

by Sanchit Gera通过Sanchit Gera RESTful服务的第三部分&#xff1a;HATEOAS和Richardson成熟度模型 (RESTful Services Part III : HATEOAS and The Richardson Maturity Model) In Part I of this series, you learned the very basics of HTTP. We went over common HTTP …

mongdb集群3.4 shard 模式

从图中可以看到有四个组件&#xff1a;mongos、config server、shard、replica set。mongos&#xff1a;数据库集群请求的入口&#xff0c;所有的请求都通过mongos进行协调&#xff0c;不需要在应用程序添加一个路由选择器&#xff0c;mongos自己就是一个请求分发中心&#xff…

我想变得富有的10个理由

1.我想和娘家人住得近一些&#xff0c;可以经常见面、聊天、逛街、吃饭。我们需要彼此的时候&#xff0c;可以马上赶到。 2.我想在家人病痛的时候&#xff0c;能得到最好的救治。 3.我想住在干净宽敞的大房子里&#xff0c;不要和长辈住^_^ 4.我希望不用我动手&#xff0c;家里…