深度学习笔记 Day4 python基础知识系列(仅本人自用)

字典

字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含:“键对象”和“值对象”。可以通过“键对象”实现快速获取、删除、更新对应的“值对象”。
列表中我们通过“下标数字”找到对应的对象。字典中通过“键对象”找到对应的“值对象”。“键”是任意的不可变数据,比如:整数、浮点数、字符串、元组。但是:列表、字典、集合这些可变对象,不能作为“键”。并且“键”不可重复。
“值”可以是任意的数据,并且可重复。
一个典型的字典的定义方式:
a={‘name’:xiaoxin’,‘age’:‘18}
字典的创建
1.我们可以通过{}、dict()来创建字典对象。
a={‘name’:xiaoxin’,‘age’:‘18’}
a=dict(name=‘xiaoxin’,age=18)
a=dict([(“name”,“xiaoxin”),(“age”,“5”)])
2.通过zip()创建字典对象
k=[‘name’,‘age’]
v=[‘xiaoxin’,‘5’]
d=dict(zip(k,v))
3.通过fromkeys创建值为空的字典
a=dict.fromkeys(‘mane’,‘age’)

1.字典元素的访问

1.通过[键]获得“值”。若键不存在,则抛出异常。
在这里插入图片描述
运行结果
在这里插入图片描述

2.通过get()方法获得“值”,推荐使用
优点是:指定键不存在,返回None;也可以设定指定键不存在时默认返回的对象。
在这里插入图片描述
运行结果
在这里插入图片描述

3.列出所有的键值对
items()
在这里插入图片描述
运行结果
在这里插入图片描述

4.列出所有的键,列出所有的值
列出键:key()
列出值:values()

5.len()键值对的个数

6.检测一个“键”是否在字典中(不是值)
in操作符
“name” in a

2.字典元素添加、修改、删除

1.给字典新增“键值对”。如果“键”已经存在,则覆盖旧的键值对;如果“键”不存在,则新增“键值对”。
在这里插入图片描述
运行结果
在这里插入图片描述

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

3.字典中元素的删除
1).del()
2).clear()删除所有键值对;
3).pop()删除指定键值对,并返回对应的“值对象”;
在这里插入图片描述
运行结果
在这里插入图片描述

4.popitem():随机删除和返回该键值对。字典是“无序可变序列”,因此没有第一个元素、最后一个元素的概念;
popitem弹出随机的项,因为字典并没有“最后的元素“或者其他有关顺序的概念。若想一个接一个地移除并处理项,这个方法就非常有效(因为不用首先获取键的列表)。
在这里插入图片描述
运行结果
在这里插入图片描述

序列解包

序列解包可以用于元组、列表、字典。
序列解包可以让我们方便的对多个变量赋值
序列解包用于字典时,默认是对“键”进行操作;
如果需要对键值对操作,则需要使用items();
如果需要对“值”进行操作,则需要使用values();
在这里插入图片描述
运行结果
在这里插入图片描述

字典核心底层原理(重要)

字典对象的核心是散列表。散列表是一个稀疏数组(总是有空白元素的数组),数组的每个单元叫做bucket。每个bucket 有两部分:一个是键对象的引用,一个是值对象的引用。
由于,所有bucket结构和大小一致,我们可以通过偏移量来读取指定bucket。在这里插入图片描述
(详情见文档)

集合

是无序可变,元素不能重复,
集合底层是字典实现,集合的所有元素都是字典中的“键对象",因此是不能重复的且唯一的。

集合创建和删除

1.使用{}创建集合对象,并使用add()方法添加元素.
a={3,5,7}
print(a)
{3,5,7}
a.add(9)
{9,3,5,7}
2.set()
将列表、元组等可迭代对象转成集合。如果原来数据存在重复数据,则只保一个。
a=(1,2,3,4)
b=set(a)
{1,2,3,4}
3.remove()删除指定元素;clear() 清空整个集合.

集合相关操作

Python对集合也提供了并集、交集、差集等运算。
a|b 或者 a.union(b) 并集
a&b 或者a.intersection(b) 交集
a-b 或者a.difference(b) 差集

控制语句

选择结构

选择结构通过判断条件是否成立,来决定执行哪个分支。
选择结构有多种形式,分为:单分双分支多分。
流程图如下:
在这里插入图片描述
在这里插入图片描述

单分支选择结构

if语句单分支结构的语法形式如下:
if 条件表达式:
(4个空格缩进)语句/语句块
其中:
①.条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等。
②.语句/语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致。
条件表达式详解
在选择和循环结构中,条件表达式的值为False的情况如下:
False、0、0.0、空值None、空序列对象(空列表、空元祖、空集合、空字典、空字符串)、空range对象、空迭代对象。
其他情况,均为True。这么看来,Python所有的合法表达式都可以看做条件表达式,甚至包括函数调用的表达式。
在这里插入图片描述
运行结果
在这里插入图片描述
条件表达式中,不能有赋值操作符“="
在Python中,条件表达式不能出现赋值操作符“=”,避免了其他语言中经常误将关系运算符“==”写作赋值运算符“=”带来的困扰。
如下代码将会报语法错误:
if 3<c and(c=20):
print(“赋值符不能出现在条件表达式中")

双分支选择结构

双分支结构的语法格式如下:
if 条件表送式:
语句1/语句块1
else:
语句2/语句块2

三元条件运算符
Python 提供了三元运算符,用来在某些简单双分支赋值情况。
三元条件运算符语法格式如下:
条件为真时的值if(条件表达式)else 条件为假时的值
两种方法比较
在这里插入图片描述
运行结果
在这里插入图片描述

多分支选择结构

多分支选择结构的语法格式如下:
if 条件表达式1:
语句1/ 语句块1
elif 条件表达式2
语句2/语句块2
elif 条件表达式n:
语句n/语句块n
[else:
语句n+1/语句块n+1
]
多分支结构,几个分支之间是有逻辑关系的,不能随意颠倒顺序。

选择结构嵌套

选择结构可以嵌套,使用时一定要注意控制好不同级别代码块的缩进量,因为缩进量决定了代码的从属关系。

循环结构

循环结构用来重复执行一条或多条语句。表达这样的逻辑:如果符合条件,则反复执行循环体里的语句。在每次执行完后都会判断一次条件是否为True,如果为True则重复执行循环体里的语句。
图示如下:
在这里插入图片描述
循环体里面的语句至少应该包含改变条件表达式的语句,以使循环趋于结束;否则,就会变成一个死循环。

while 循环

while循环的语法格式如下:
while条件表达式:
循环体语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值