本文主要是介绍python基础学习第四次,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
字典
字典是“键值对”的无序可变序列,字典中的每一个元素都是一个“键值对”,包含:“键对象”和“值对象”,可以通过“键对象”实现快速获取,删除,更新对应的“值对象”。
列表中通过“下标数字”找到相应的对象,字典中通过响应的“键对象”找到相应的“值对象”。“键”是任意的不可变的数据,比如:整数,浮点数,字符串,元组,但是:列表,字典,集合这些可变对象,不能作为“键”,并且“键”不可重复。
“值”可以是任意的数据,并且可以重复。
字典的创建
1 我们可以通过{},dict()来创建字典对象
(注意第三个,每一个元组就是一个键值对)
创建空对象
通过zip()函数创建字典对象 #了解
通过fromkeys创建值为空的字典
(“none”表示值为空)
字典元素的访问
还可以通过get()方法获得“值”,并且推荐使用,优点是:指定键不存在,返回None;也可以设指定键不存在时默认返回的对象。推荐使用get()方法获取“值对象”
列出所有的键值对
列出所有的键,列出所有的值
len()键值对的个数
检测一个键是否在字典中
字典元素的添加,修改,删除
给字典增加键值对,但是如果键已经存在,则覆盖旧的键值对,如果键不存在,则创建新的键值对。
使用update()将薪资点中所有的键值对全部添加到旧字典对象上, 如果key有重复,则直接覆盖。
字典元素的删除,可以使用del()方法,或者使用clear()删除所有的键值对;pop()删除指定键值对,并返回对应的‘值对象’;
popitem()随机删除和返回该键值对。字典是”无序可变序列“,因此没有第一个元素,最后一个元素的概念;popitem弹出随机的项,因为字典并没有”最后的元素“或者其他有关顺序的概念,若想一个接着一个地移除并处理项。这个方法非常有效(因为不用首相获取键地列表)【本质就是随机返回一组键值对】
序列解包
序列解包可以用于元组,列表,字典。序列解包可以让我们方便地对多个变量赋值。
序列解包用于字典时,默认对”键“进行操作;如果需要对键值进行操作,则需要使用items();如果需要对”值“操作,则需要使用value();
网上数据的本质大多数都是表格
字典核心底层原理(重要)
字典对象的核心时散列表。散列表时一个稀疏数组(总有空白元素的数组),数组的每个单元叫做bucket。每个bucket有两部分:一个键对象的引用,一个是值对象的引用
将一个键值对放进字典的底层过程
由于数组长度为8,我们可以拿计算出的散列值的最右边3位数字作为偏移量,即101,其对应的十进制数字是5,然后查看偏移量5,对应的bucket是否为空,若为空,则放进去,不空则再向右取三位,重复此过程,直到找到空的bucket并将其放入为止。(注意:数组长度是8,则三位三位的取,如果数组长度为32,则取五位五位的取,数组长度64则取六位。)
根据键查找“键值对”的底层过程
先算出要找的key的散列值,(如果数组长度为8)则从散列值的右三位开始对应,假如第一个数是x,则看x那一位的key的散列值和刚刚算出来的散列值是否一样,若一样,则结束,不同,则进行相同的操作。
集合(另一种存储结构)
集合是无序可变,元素不能出伏,实际上,集合底层是字典的实现,集合的所有元素都是字典中的“键对象”,因此是不能重复的且唯一的。
集合的创建和删除
(一定注意,集合中不能出现两个一样的元素)
使用set()函数,将列表,元组等可迭代迭代对象转成集合。如果原来数据存在重复数据,则只保留一个。
remove()删除指定元素;clear()清空整个集合
集合相关操作
并集,交集,差集
选择结构
选择结构通过判断条件是否成立,来决定执行哪个分支。选择结构有多种样式,分为:单分支,双分支,多分枝。流程图:
多分支
单分支选择结构
if语句单分支结构的语法形式如下:
if条件表达式:
语句/语句块 #注意此处一定有缩进
条件表达式:可以是逻辑表达式,关系表达式,算术表达式等等。
语句/语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致。
csdnimg.cn/2020072216513766.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzI3ODg4Mg==,size_16,color_FFFFFF,t_70)
一定注意:input函数引进的对象的类型是字符串(str)类型,用的时候可能会需要类型转换。
条件表达式
false,0,0.0,空值none,空序列对象 (空列表,空元组,空集合,空字典,空字符串),空range对象,空迭代对象。
其他情况均为true
条件表达式中,不能有赋值操作符“=”
双分支选择结构
三元运算符
多分支表达式
(多分支结构,几个分支之间是有逻辑关系的,不能随意颠倒顺序)
一定要注意if和elif语句后面要加冒号
format用法复习
选择结构嵌套
选择结构可以嵌套,使用时一定要注意控制好不同级别代码块儿的缩进量,因为缩进量决定了代码的从属关系,语法格式如下:
循环结构
如果符合条件,则反复执行循环体里的语句,在每次执行完之后都会判断一次条件是否为True,如果为True则重复执行循环体中的语句。
while循环
while 条件表达式:
循环体语句
例如:
这篇关于python基础学习第四次的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!