第五节-字典\集合\控制语句
- 字典
- 字典的创建
- 字典元素的访问
- 字典元素添加、修改、删除
- 序列解包
- 表格数据使用字典和列表存储,并实现访问
- 字典核心底层原理(重要)
- 集合
- 集合相关操作
字典
字典是“键值对”的无序可变序列,字典中的每个元素都是一个键值对,包含:“键对象”和“值对象”,可以通过“键对象”实现快速获取、删除、更新对应的“值对象”。
列表中我们通过“下标数字”找到对应的对象。字典中通过“键对象”找到对应的“值对象”。“键”是任意不可变数据,比如:整数、浮点数、字符串、元组。但是:列表、字典、集合这些事可变对象,不可能作为“键”。并且“键”不可重复。“值”可以是任意的数据,并且可以重复。
字典的创建
1.可以通过{}、dict{}来创建字典对象。
2.通过zip()创建字典对象
zip的第一个参数是键。
3.通过fromkeys创建值为空的字典
None表示的是值。
字典元素的访问
为了测试各种方法,我们设定一个字典对象“
1.通过[键]获得“值”。若键不存在,则抛出异常
2.通过get()方法获得“值”。推荐使用。优点是:指定键不存在返回None;也可以设定指定键不存在时默认返回的对象,推荐使用get()获取“值对象”。
3.列出所有的键值对
4.列出所有的键,列出所有的值
5.len()键值对的个数
6.检测一个“键”是否在字典中
字典元素添加、修改、删除
1.给字典新增“键值对”。如果“键”已经存在,则覆盖旧的键值对;如果“键”不存在,则新增“键值对”。
2.使用update()将新字典中所有键值对全部添加到旧字典对象上。如果key有重复,则直接覆盖。
3.字典中元素的删除,可以使用del()方法;或者clear()删除所有的键值对;pop()删除指定键值对,并返回对应的“值对象”;
4.popitem():随机删除和返回该键值对。字典是“无序可变序列”,因此没有第一元素、最后元素的概念;popitem弹出随机的项,因为字典并没有“最后的元素”或者其他有关顺序的概念。若想一个接一个地移除并处理项,这个方法就非常有效(因为不用首先获取键的列表)。
序列解包
序列解包可以用于元祖、列表、字典。序列解包可以让我们方便的对多个变量赋值。
序列解包用于字典时,默认是对“键”进行操作;如果需要对键值对操作,则需要使用items();如果需要对“值”进行操作,则需要使用values();
默认是对键进行操作,对键值对操作,则需要使用items()
对值进行操作如下:
表格数据使用字典和列表存储,并实现访问
r1={'name':'高小一','age':18,'salary':30000,'city':'北京'}
r2={'name':'高小二','age':19,'salary':20000,'city':'上海'}
r3={'name':'高小五','age':20,'salary':10000,'city':'深圳'}
tb=[r1,r2,r3]
#获得第二行的人的薪资
print(tb[1].get('salary'))
20000Process finished with exit code 0
r1={'name':'高小一','age':18,'salary':30000,'city':'北京'}
r2={'name':'高小二','age':19,'salary':20000,'city':'上海'}
r3={'name':'高小五','age':20,'salary':10000,'city':'深圳'}
tb=[r1,r2,r3]
#获得第二行的人的薪资
print(tb[1].get('salary'))#打印表中所有的薪资
for i in range(len(tb)): #i-->0,1,2print(tb[i].get('salary'))
20000
30000
20000
10000Process finished with exit code 0
#打印表中所有的数据
for i in range(len(tb)): #i-->0,1,2print(tb[i].get('name'),tb[i].get('salary'),tb[i].get('age'),tb[i].get('city'))
高小一 30000 18 北京
高小二 20000 19 上海
高小五 10000 20 深圳Process finished with exit code 0
字典核心底层原理(重要)
集合