Python基础知识-pycharm版(第4节)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、字典
    • 1. 特点
    • 2. 创建
    • 3.访问
    • 4.元素添加、修改、删除
    • 5.序列解包
    • 6. 字典核心底层原理
  • 二、集合
    • 1.特点
    • 2.创建
    • 3.删除
    • 4.交集并集差集运算
  • 三、控制语句
    • 1.选择结构:单分支、双分支、多分支
    • 2.循环结构

一、字典

1. 特点

“键值对”的无序可变序列

2. 创建

通过{}创建
通过dict()创建
通过zip()创建k=['name','age','job'] v=['gaoqi',18,'teacher'] d=dict(zip(k,v))
通过fromkeys创建值为空的字典

3.访问

通过get()方法获得“值”
a.items()列出所有的键值对
a.keys()
a.values()
len()
in 检测一个“键”是否在字典中

4.元素添加、修改、删除

update()将字典种所有键值对全部添加到旧字典对象上
删除:
del() 字典中元素的删除
clear() 删除所有键值对
pop() 删除指定键值对,并返回对应的“值对象”
popitem() 随机删除和返回键值对

5.序列解包

序列解包可以用于元组、列表、字典。序列解包用于字典时,默认是对“键”进行操作

s = {
     'name':'gaoqi','age':18,'job':'teacher'}
 name,age,job=s #默认对键进行操作
 name  #'name'

6. 字典核心底层原理

字典对象的核心是散列表。散列表是一个稀疏数组(总是有空白元素的数组),数组的

每个单元叫做bucket。每个bucket 有两部分:一个是键对象的引用,一个是值对象的引
用。
Python基础知识-pycharm版(第4节)_第1张图片
用法小结
键必须可散列
(1) 数字、字符串、元组,都是可散列的。
(2) 自定义对象需要支持下面三点:

  • 支持hash()函数
  • 支持通过__eq__()方法检测相等性。
  • 若a==b 为真,则hash(a)==hash(b)也为真。
    字典在内存中开销巨大,典型的空间换时间。
    键查询速度很快
    往字典里面添加新建可能导致扩容,导致散列表中键的次序变化。因此,不要在遍历字
    典的同时进行字典的修改。

二、集合

1.特点

无序可变,元素不能重复,集合底层是字典实现

2.创建

使用{}创建
使用set()将可迭代对象转成集合

3.删除

remove() 删除指定元素
clear() 清空整个集合

4.交集并集差集运算

并集 a|b;a.union(b)
交集 a&b; a.intersection(b)
差集a-b; a.difference(b)

三、控制语句

1.选择结构:单分支、双分支、多分支

在选择和循环结构中,条件表达式的值为False 的情况如下:
False、0、0.0、空值None、空序列对象(空列表、空元祖、空集合、空字典、空字
符串)、空range 对象、空迭代对象。其他情况,均为True。
三元运算符语法格式:条件为真时的值 if (条件表达式) else 条件为假时的值
双分支选择结构:

num = input("输入一个数字:")
if int(num)<10:
print(num)
else:
print("数字太大")

等价于使用三元运算符的下列代码:

num = input("请输入一个数字")
print( num if int(num)<10 else "数字太大")

2.循环结构

循环体里面的语句至少应该包含改变条件表达式的语句,以使循环趋于结束;否
则,就会变成一个死循环。
while 循环的语法格式如下:
while 条件表达式:
循环体语句

你可能感兴趣的:(python)