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 条件表达式
循环体语句



