python基础学习1018-1

python基础学习1018-1,第1张

python基础学习1018-1

字典:键值对的无序可变序列,每个元素叫键值对,包含键对象和值对象。可通过键对象实现获取删除更新对应 值对象
其中 键 是任意的不可变数据,但是列表、字典、集合这些可变对象,不能作为 键。并且 键 不可变。“值”可以是任意的数据,并且可重复。
定义方式:a={'name':'gaoqi','age':18,'job':'programmer'}  通过键 到 值
创建:
1.{}、dict()
2.zip() 
3.fromkeys 创建为空的字典

字典的访问
1.[键] 的方式
2.get(键) 键不存在 返回NONE
3.列出所有键值对
4.列出所有键
5.len()检测键值对个数
6.in 检测 键 是否在字典中

字典添加 删除
1.a['address']='八九十个'  键重复 则会覆盖
2.update() 将新字典所有键 覆盖 重复会覆盖
3.del()  元素删除 del(a['name']) ;clear() 所有键值对删除  a.clear();pop() 删除元素并得到元素对应 值对象
4.popitem() 随机删除并返回该键值对

序列解包
可用于 元组 列表 字典
a,b,c=10,20,30 a=10
字典 键a,b,c=s 值d,e,f=s.values() 键值对h,i,g=s.items()

字典核心原理
散列表是一个稀疏数组(有空白元素的数组),数组的 每个单元 bucket。 bucket 两部分:键对象的引用,值对象的引 用。由于 bucket 结构和大小一致,可以通过偏移量来读取 bucket。
键值放入的底层过程
固定长度后 通过hash()计算 散列值 以此取右往左几位的数字做偏移量,依次找到对应的bucket 满了就换位置 2/3都满了 则进行扩容 *** 作
*** 作流程图如下

而对于键取值的过程,先进行hash()取得散列值,安后几位寻找,依次寻找的散列值进行比较,相同即为目标。不同则按前几位继续寻找,直道找到。过程流程图如下

集合 : 无序可变,且不能重复 底层实施字典的实现,元素是字典的“键对象”
创建:
1.{}直接创建,add()方法添加
2.set() 将列表及元组可迭代对象转换成集合 重复内容只保留一个
3.remove() 删除指定元素 ;clear() 全部清空
相关 *** 作:
并集 a|b 或 a.union(b) 
交集 a&b  或 a.intersection(b) 
差集 a-b 或 a.difference(b)

第四章 控制语句

选择结构 分单只与多支

单支结构:
if 条件表达式
    语句/语句块
单支中条件表达式的值为 False 的情况: False、0、0.0、空值 None、空序列对象(空列表、空元祖、空集合、空字典、空字 符串)、空 range 对象、空迭代对象。
注意:条件表达式中,不能有赋值 *** 作符“=”

双分支选择结构:
if 条件表达式 : 
    语句 1/语句块 1 
else:
    语句 2/语句块 2

三元条件运算符 更加简洁
条件为真时的值 if (条件表达式) else

多分支选择结构
多分支选择结构的语法格式如下: 
if 条件表达式 1 : 
    语句 1/语句块 1
 elif 条件表达式 2: 
    语句 2/语句块 2
 ...
elif 条件表达式 n : 
   语句 n/语句块 n 
    [else:语句 n+1/语句块 n+1 ]
如果每个分支都使用了独立的、完整的判断,顺序可以随意挪动,而不影响程序运行。

选择结构嵌套 
选择结构可以嵌套,注意控制缩进量,决定了 代码的从属关系
语法格式如下:
 if 表达式 1:
    语句块 1 
    if 表达式 2:
          语句块 2 
    else:
          语句块 3 
else:
    if 表达式 4:
          语句块 4

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3972219.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存