(1),字典创建

字典是“键值对”的无序可变序列,每个元素都是键值对,通过“键对象”对“值对象”进行操作。键是不可以重复的,值是可以重复的,并且可以是任何数据。

1,字典的创建:基本方法。

a = {'name':'gaochao','age':18,'dd':[2,3,4]}
b = dict(name='cj',age=18,t=[2,3,4])
c = [(2,3),(4,5)]
print(a,b,c)

2,zip创建

m = [s,q,z]
n = [56,7,89]
d = dict(zip(m,n))
print(d)

3,fromkeys创建值对象为None的字典。

#通过fromkeys创建值为空的字典
a = dict.fromkeys(['name','age','job'])
print(a)

,(2),访问字典

推荐使用get()方法,因为该方法在键不存在的情况下不会返回错误。而会返回None。也可以设定在指定键不存在时默认返回的值。

m = ["s","q","z"]
n = [56,7,89]
d = dict(zip(m,n))
print(d)print(d.get("s"))
print(d.get("a"))
print(d.get("a","靖靖有归好厉害"))print(d.items())#列出所有键值对
print(d.keys())#返回所有的键对象
print(d.values())#返回所有的值对象print(len(d)) #键值对个数print("s" in d) #判断该键是否在字典中

(3),字典的添加,修改,删除。

1,给字典新添加“键值对”,如果键已经存在,则覆盖旧的键值对。如果不存在,则新增键值对。

2,使用update()将字典中所键值对全部加到旧字典对象上,如果key有重复,则直接覆盖。

3,删除字典,可以使用del()方法,或者使用clear()删除所有键值对,pop()删除指定键值对,并返回对应的值对象。

4,popitem,随机删除和返回该键值对,字典是无序可变序列,因此没有第一个和最后一个元素的概念。popitem弹出随机的项,因为字典没有,最后的元素或者其他有关的顺序的概念,若是一个接一个地移除并处理项,这个方法就很有效(不用首先获取键等等列表)。

(4),序列的解包

1,序列解包可以用于对元组,列表,字典。可以让我们方便的对多个变量赋值。

x,y,z=20,30,10 #值
(a,b,c)=(20,30,10) #元组
[a,b,c]=[20,30,10] #列表

2,如果对字典解包,则默认对“键”解包。

s = {"name":"cj","age":18,"job":"teacher"}
a,b,c = s
print(a,b,c)a,b,c = s.items() #对“键值对”解包print(a,b,c)a,b,c = s.values() #对值解包print(a,b,c)

(5),例子,表格数据使用字典与列表存储,实现访问(以后能够看到的各种数据本质上都是表格)。

r1 = {"name":"C1","age":18,"salary":12345,"city":"成都"}
r2 = {"name":"C2","age":19,"salary":12375,"city":"重庆"}
r3 = {"name":"C3","age":12,"salary":22345,"city":"New.York"}tb = [r1,r2,r3]print(tb[1].get("city")) #取r2所在的城市for x in range(3):               #遍历输出三个人的工资print(tb[x].get("salary"))

(6),字典核心底层原理

字典对象的核心是散列表。散列表是一个稀疏数组(总是有空白元素的数组),数组的每个单元叫做bucket。每个bucket有两部分:一个是键对象的引用,一个是值对象的引用。

由于:所有bucket结构和大小一致,每个bucket结构和大小一致,我们可以通过偏移量来读取指定bucket。

1,将一个键值对放进字典的底层过程。

Python会根据散列表的拥挤程度扩容,“扩容”指的是创造更大的数组,将原有内容拷贝到新数组中。接近2/3时,就会扩容。

2,根据键查找键值对的底层过程。

根据hash()算出偏移量,具体的流程与上述过程类似。

(Python语法篇)4.序列(3)字典相关推荐

  1. python面试(python语法篇)

    python语法 请说一下你对迭代器和生成器的区别 什么是线程安全 你所遵循的代码规范是什么?请举例说明其要求? PEP8 1. 变量 2. 函数和方法 3. 类 4. 模块和包 5. 关于参数 6. ...

  2. 掌握Python语法篇:核心编程能力基础第一阶段

    就想问一下有多少是看到封面就点进来的,不过不要失望今天依旧会是收获满满的一天,记得点一下最后的五角星,哪怕是起灰也行啊,支持一下辣条哥啊 今天我们继续聊python 之前我们讲了python的输入和输 ...

  3. (Python语法篇)7.面向对象编程(3)类对象

    1,类对象 我们在前面讲的类定义格式中,"class 类名:".实际上,当解释器执行class语句时,就会创建一个类对象. #类对象 class Student:def __ini ...

  4. python语法讲解小白入门第二篇

    今天继续为大家分享下自己学习python3总结的语法笔记,专为python小白量身打造,如果你喜欢可以点个关注哦!如果你是刚入门的python小白的话,建议你从第一篇开始学起,这样才能效果更好一些,点 ...

  5. python基本语法语句-python 语法基础篇 一

    安装篇 编辑篇: 编辑python 一 : 在终端环境下输入python命令,回车键运行.这种方式称为 交互方式. 1️⃣ 打开终端: 2️⃣ 输入python 回车 3️⃣ 输入python 语法 ...

  6. python列表添加元素的三种方法定义集合数据对象_(1) List,tuple,dictionary,Python语法基础集,一,之,列表,元组,字典,集合...

    Python序列(列表.元组.字典.集合) 一.列表(List)与列表推导式 (一)列表(list) 1.列表是Python内置 可变序列 (列表中元素可增加删除或修改): 2.列表元素放在一对中括号 ...

  7. Python入门进阶篇(六)字典的介绍

    请仔细阅读哦!!! 文章目录 前言 一.Python字典的创建与删除 1.字典的创建 2.字典的删除 二.Python字典的访问 1.通过"键值对"访问字典 2.遍历字典 三.Py ...

  8. Python中的数据序列(元组、集合、字典)

    Python中的数据序列 一.元组的定义与使用 1.为什么需要元组 思考:如果想要存储多个数据,但是这些数据是不能修改的数据,怎么做? 答:列表?列表可以一次性存储多个数据,但是列表中的数据允许更改. ...

  9. Python基本语法_基本数据类型_字典类型详解

    目录 文章目录 目录 软件环境 字典(Dictionary) 创建一个字典对象 简单的创建 fromkey() 使用 keys 来创建字典 查询 查询字典中 key 映射的 value get() 查 ...

最新文章

  1. 敏捷过程、极限编程和SCRUM的关系
  2. 【客户故事】借助钉钉宜搭,奶茶店也开始用黑科技管理门店了
  3. pve 不订阅更新_??“吃鸡”体验服已无更新,暗夜危机2.0或将被1款新游代替
  4. 北妈是谁、谁是北妈?他为何如此帅?
  5. linux端口解析,linux中查看和开放端口详解
  6. Spring学习--实现 FactoryBean 接口在 Spring IOC 容器中配置 Bean
  7. Python 数据结构与算法——从二分图到寻找最大排列(Maximum Permutation)
  8. 云视通手机下载的文件存储位置_小白版丨IPFS网络怎么存储、下载文件?怎么托管网站?...
  9. python中计算DataFrame,Series的数据频率
  10. 【安全问道】系列:阿里带你3分钟掌握一个互联网
  11. MT4的交易记录导入“复盘大师3”的解决办法
  12. MTK6589 电话号码匹配改成11位出错
  13. excel之列联表分析
  14. Ribbon停止维护
  15. vue仿美团饿了么--底部导航公共组件
  16. 关于K.im的满满干货!
  17. 移动端字体显示大小和css设置大小的不一致解决方案
  18. java计算机毕业设计vue基层社区管理服务网MyBatis+系统+LW文档+源码+调试部署
  19. Linux系统- Redhat7.6配置网卡team和网桥详解
  20. java秒杀怎么防止超卖_秒杀系统是如何防止超卖的?

热门文章

  1. mysql授权不管用_MySQL_MySQL授权问题总结,我用localhost的root帐号不能连 - phpStudy...
  2. win10安装visio2010出错_为何我安装Visio 2010时会安装不上,提示下面的错误
  3. 人工智能时代,机遇与挑战并存
  4. 红黑树 -- 增删查改
  5. 大脑构造图与功能解析_大脑的结构功能及作用是怎样?
  6. C++ + ubuntu 调用boost 的一个问题
  7. 烤仔创作者联盟 | NFT是市场的下一个答案?或迎来新一轮“造福潮”
  8. 织梦如何更改默认的后台登录账号和密码(亲测可用)
  9. 五、量子纠错编码的原理
  10. nplayer,es文件浏览器等进行局域网连接时登录不上或者不断弹出登录框的问题