栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python基础知识Chapter4

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python基础知识Chapter4

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

1.给字典新增 键值对 ,如果 键 已存在,则覆盖旧的键值对 如果不存在 则新增键值对

 

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

 a { name : gaoqi , age : 18 , job : programmer }
 b { name : gaoxixi , money : 1000 , sex : 男的 }
 a.update(b)
{ name : gaoxixi , age : 18 , job : programmer money : 1000 , sex : 男的 }

指定元素的删除 del() 删除所有 clear()

pop()删除指定键值对 并返回值对象

 a { name : gaoqi , age : 18 , job : programmer }
 del(a[ name ])

popitem():随机删除和返回该键值对。字典是 无序可变序列 因此没有第一个、最后一个或其他关于顺序的概念 可以使用popitem()弹出随机的项 若想一个接一个地移除并处理项 此方法很有效。

序列解包

序列解包可用于列表、元组、字典 方便地对多个变量进行赋值

 x,y,z 10,20,30
 [x,y,z] [10,20,30]
 (x,y,z) (10,20,30)

当对字典进行操作时 默认是对 键 进行操作,若需要对键值对进行操作 使用items(),若需要对值进行操作 使用values()

 s { name : gaoqi , age : 18 , job : teacher }
 name,age,job s  #默认对键进行操作
 name
 name,age,job s.items() #对键值对进行操作
 name
( name , gaoqi )
 name,age,job s.values()  #对值进行操作
 name
 gaoqi 
表格数据使用字典和列表存储 并实现访问

biaoge.py

所有的数据都可以使用表格来表示

字典核心底层原理

字典对象的核心是散列表 散列表是一个稀疏数组 总是有空白元素的数组 数组的每个单元叫bucket 表元 。

每个bucket有两个部分 键对象的引用、值对象的引用

由于bucket大小一致 可以通过偏移量来引用、读取指定bucket

1.将键值对放进字典的底层过程

把 name gaoqi 这个键值放入字典对象中 第一步需要计算 name 的散列值 哈西值 可通过hash()来计算

由于数组长度为8 则可以拿出最右边3个数作为偏移量 即101 即为5 查看5是否为空 若不为空则再取右边三位 即100 4 再看4是否为空 直到找到空的bucket放进去为止。

python根据散列表的拥挤程度扩容 当接近2/3时 数组就会扩容。

根据键查找键值对的底层过程
 a.get( name )
 gaoqi 

Step1:计算 name 对象的散列值

同上 找到偏移量 若为空 返回None 若不为空 返回值对象

1.键必须可散列 数字、字符串、元组。自定义对象需满足三点

2.字典内存开销巨大 空间换时间

3.往字典中添加新键可能导致扩容

集合是无序 可变 元素不能重复 集合的底层是字典 全是键对象

因此是不能重复且唯一的

集合创建和删除

1.{}创建 add()方法添加元素

2.set()将列表、元组等可迭代对象转成集合 若有重复元素只能把保留一个

3.remove()删除指定元素 clear()清空

集合相关操作
 a {1,3, sxt }
 b { he , it , sxt }
 a|b   #并集
{1,3, sxt , he , it }
 a b   #交集
{ sxt }
 a-b   #差集
{1,3}
 a.union(b)  #并集
{1,3, sxt , he , it }
 a.intersection(b)  #交集
{ sxt }
 a.difference(b)  #差集
{1,3}

控制语句 选择结构

单分支选择结构

if 条件表达式 语句/语句块

条件表达式

条件表达式值为False的情况如下

False,0,0.0,空值,空序列对象、空range对象

条件表达式中不能出现赋值符号

需用等于判断

双分支结构

if

else

python给了三元运算符 用于简单双分支赋值情况 语法如下

条件为真时的值 if 条件表达式 else 条件为假时的值

num input( 请输入一个数字 )
print(num if int(num) 10 else 数字太大 )
多分支结构

语法结构如下

if expression1:

phrase1

elif expression2:

phrase2

·

·

·

elif expression n:

phrase n

[else:

phrase n 1

]

几个分支之间是有逻辑关系的 不能随意调换顺序

选择结构的嵌套

选择结构可以嵌套 但一定要注意好缩进量

循环结构

while循环

语法如下

while 条件表达式

循环体语句

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268201.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号