欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Python】第五节-字典\集合

程序员文章站 2024-03-08 22:15:28
...

字典

字典是“键值对”的无序可变序列,字典中的每个元素都是一个键值对,包含:“键对象”和“值对象”,可以通过“键对象”实现快速获取、删除、更新对应的“值对象”。
列表中我们通过“下标数字”找到对应的对象。字典中通过“键对象”找到对应的“值对象”。“键”是任意不可变数据,比如:整数、浮点数、字符串、元组。但是:列表、字典、集合这些事可变对象,不可能作为“键”。并且“键”不可重复。“值”可以是任意的数据,并且可以重复。

字典的创建

1.可以通过{}、dict{}来创建字典对象。
【Python】第五节-字典\集合
2.通过zip()创建字典对象
【Python】第五节-字典\集合
zip的第一个参数是键。

3.通过fromkeys创建值为空的字典

【Python】第五节-字典\集合
None表示的是值。

字典元素的访问

为了测试各种方法,我们设定一个字典对象“
【Python】第五节-字典\集合
1.通过[键]获得“值”。若键不存在,则抛出异常
【Python】第五节-字典\集合
2.通过get()方法获得“值”。推荐使用。优点是:指定键不存在返回None;也可以设定指定键不存在时默认返回的对象,推荐使用get()获取“值对象”。
【Python】第五节-字典\集合
【Python】第五节-字典\集合
3.列出所有的键值对
【Python】第五节-字典\集合

4.列出所有的键,列出所有的值
【Python】第五节-字典\集合

5.len()键值对的个数
【Python】第五节-字典\集合
6.检测一个“键”是否在字典中
【Python】第五节-字典\集合

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

1.给字典新增“键值对”。如果“键”已经存在,则覆盖旧的键值对;如果“键”不存在,则新增“键值对”。
【Python】第五节-字典\集合
2.使用update()将新字典中所有键值对全部添加到旧字典对象上。如果key有重复,则直接覆盖。
【Python】第五节-字典\集合
3.字典中元素的删除,可以使用del()方法;或者clear()删除所有的键值对;pop()删除指定键值对,并返回对应的“值对象”;

【Python】第五节-字典\集合
【Python】第五节-字典\集合
4.popitem():随机删除和返回该键值对。字典是“无序可变序列”,因此没有第一元素、最后元素的概念;popitem弹出随机的项,因为字典并没有“最后的元素”或者其他有关顺序的概念。若想一个接一个地移除并处理项,这个方法就非常有效(因为不用首先获取键的列表)。
【Python】第五节-字典\集合

序列解包

序列解包可以用于元祖、列表、字典。序列解包可以让我们方便的对多个变量赋值。
【Python】第五节-字典\集合
序列解包用于字典时,默认是对“键”进行操作;如果需要对键值对操作,则需要使用items();如果需要对“值”进行操作,则需要使用values();
【Python】第五节-字典\集合
【Python】第五节-字典\集合
默认是对键进行操作,对键值对操作,则需要使用items()
对值进行操作如下:
【Python】第五节-字典\集合

表格数据使用字典和列表存储,并实现访问

【Python】第五节-字典\集合

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'))
20000

Process 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,2
    print(tb[i].get('salary'))
20000
30000
20000
10000

Process finished with exit code 0
#打印表中所有的数据
for i in range(len(tb)): #i-->0,1,2
    print(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

字典核心底层原理(重要)

【Python】第五节-字典\集合
【Python】第五节-字典\集合
【Python】第五节-字典\集合
【Python】第五节-字典\集合
【Python】第五节-字典\集合
【Python】第五节-字典\集合
【Python】第五节-字典\集合

集合

【Python】第五节-字典\集合
【Python】第五节-字典\集合

集合相关操作

【Python】第五节-字典\集合

相关标签: python