大家好!今天我们学习的是python的字典进阶操作,而字典的用途很多,字典是 除列表以外 Python 之中 最灵活 的数据类型。而字典是一种无序的对象集合,和列表相反,列表是一种有序的对象集合,字典和列表一样都能进行增删改查。字典 (Dictionary)是Python提供的一种常用的数据结构,由键(key)和值(value)成对组成,键和值中间以冒号:隔开,项之间用逗号隔开,整个字典由大括号 {}括起来 。
文章目录
目录
一、什么是字典
dictionary(字典)是另一种可变容器模型,且可存储任意类型对象。字典是 除列表以外 Python 之中 最灵活 的数据类型。字典可以用来 存储多个数据。通常用于存储描述一个物体的相关信息 。
字典用{}定义,使用键值对存储数据,键值对之间使用“,”(英文逗号)分隔。其中键(key)是索引,值(value)是数据。键和值之间使用“:”(英文冒号)分隔。
需要注意的是:键必须是唯一的,值可以去任何数据类型,但是键 只能使用 字符串、数字或 元组。
二、字典与列表的区别
- 列表是有序的对象集合
- 字典是无序的对象集合
三、简单的定义一个字典
# 定义一个身份信息的字典
xiaoli = {'name': '李力', 'age': 28, 'height': 185, 'weight': '80kg'}
# 格式 变量 = {key:value}
# 定义一个空字典
d = {}
1、字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
2、键值对:一个键和一个值相对应,这一个对应的一对称之为 “对”,使用逗号分隔,一个对就是一个元素,相当于列表里面的一个元素。
3、字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,也就是第一次定义的值,会被第二次定义的值覆盖,打印的时候就只显示第二次定义的值
四、访问字典
1、要访问一个字典里面的键,需要先定义一个字典,如果访问的字典里面没有所访问的“键”就会报错,所以要一个“键”对应一个值,这样才算是一个对。
# 定义一个关于小明的身份信息
identity = {'name': '小明', 'age': 21, 'height': 179, 'addr': '四川'}
print(identity['name'])
print(identity['age'])
print(identity['height'])
print(identity['addr'])
2、访问字典内数据的第二种方式
访问字典数据除了可以使用以上的一种方式外还可以使用 .get() 函数,来访问字典数据,实例如下:
# 定义一个关于小明的身份信息
identity = {'name': '小明', 'age': 21, 'height': 179, 'addr': '四川'}
# print(a_dict.name) # 错误方法
print(a_dict.get('age')) # 正确方法
print(identity.get('name'))
print(identity.get('age'))
print(identity.get('height'))
print(identity.get('addr'))
五、修改字典
1、修改字典就是向字典添加新内容的方法是增加新的键/值对
实例如下:
# 定义一个关于小明的身份信息
identity = {'name': '小明', 'age': 21, 'height': 179, 'addr': '四川'}
# 修改之前的字典
print(identity)
# 修改之后的字典
identity['name'] = '小李'
print(identity)
2、添加元素
给字典添加一个新的 key 值和 value
如果使用变量名['键'] = 数据时, 这个键如果在字典中不存在, 那么就会变成新增元素
# 定义一个新的字典
d = {'name': '小马'}
d['age'] = 45
print(d)
3、如果定义的字典中存在要添加的键值对元素时,那么添加之后的字典内的值就会变成你所添加的元素,之前的值就会被覆盖。
# 在字典内添加已经存在的键值对
d = {'name': '小马', 'age': 45}
d['name'] = '老马'
print(d)
六、删除字典元素
1、能删除字典内单一的元素,也可以清空整个字典
字典的删除 del 1.删除字典中的某一个元素 实例如下:
# 定义一个字典
d = {'name': '老李', 'age': 19, 'height': 175}
# print(d)
# 删除字典中单一的元素
del d['name']
# 删除之后
print(d)
2.删除整个字典 实例如下:
# 定义一个字典
a = {'name': '老李', 'age': 19, 'addr': '四川'}
# 删除整个字典
# 删除之前
print(a)
# 删除之后
def a
# 永久删除字典,无法打印,不然会报错
2、clear
删除字典中的所有数据,但是保留字典的结构
实例如下:
# 先定义一个字典
a = {'name': '小明', 'age': 15, 'height': 145}
print(a) # 删除之前
a.clear()
print(a) # 删除之后
七、字典的遍历
1、什么是遍历?
遍历就是从头到尾依次从列表中获取数据,在循环体内部针对每一个元素,执行相同的操作。 在Python中为了提高列表的遍历效率,专门提供的迭代 (iteration)遍历。
2、字典的遍历分为四种
2.1 遍历字典的 key
2.2 遍历字典的 value
2.3 遍历字典的 key 和 value
2.4 遍历字典的元素/项
2.1.1 遍历字典的 key 实例如下:
# 定义一个字典
a = {'name': '小明', 'age': 19, 'height': 185}
# 遍历字典的 key , 使用 .keys() 方法获取字典中的 key 值
for key in a.keys():
print(key) # 打印遍历的字典的 key 值
2.2.2 遍历字典的 value 实例如下:
# 定义一个字典
b = {'name': '小李', 'age': 19}
# 使用 .values() 方法遍历字典的 value
for value in b.values():
print(value) # 打印遍历字典的 value
2.3.3 遍历字典的 key 和 value
# 定义一个字典
c = {'name': '小白', 'age': 25}
# 遍历字典的 key和 value 的值,用 .items() 方法
for key, value in c.items():
print(key,value) # 打印所遍历的值
2.4.4 遍历字典的元素/项
# 定义一个字典
d = {'name': '小黑', 'age': 23}
# 遍历字典的项还是使用 .items() 方法
for item in d.items():
print(item) # 打印遍历的项
八、字典内置的函数
1.内置函数如下:
- len(a) 计算字典内键的数量
- str(a) 输出字典内的所有元素,输出的值为字符串
- type(a) 输出变量的数据类型
实例如下:
# 定义一个字典
a = {'name': '小李', 'age': 45}
print(len(a))
# 定义一个字典
b = {'name': '老王', 'age': 32}
print(str(b))
# 定义一个字典
c = {'name': '小爱', 'age': 23}
print(type(c))
2、内置方法
字典内置方法
以下所有内置方法均以本次定义的字典为例:
# 定义一个字典
a = {'name': '小军', 'age': 23, 'height': 170, 'weight': '70kg', 'addr': '沈阳'}
- a.clear() 删除字典内所有元素,但是保留字典的结构
- a.copy() 输出字典的所有元素,相当于复制了一次字典
- a.formkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
- a.get(key, default = None) 返回指定键的值,如果键不在字典中返回 default 设置的默认值
- key in a 如果键在字典中则返回 true 否则返回 false
- a.items() 返回字典中的项
- a.keys() 返回字典中的键
- a.values() 返回字典中的值
- a.setdefault(key, default = None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
- a.update(a2) 把字典里面的 a2 的键/值,对应更新到 a 中
- pop(key, [default]) 删除字典 key(键)所对应的值,返回被删除的值。
- popitem() 返回并删除字典中最后一对键和值
总结
以上就是今天所讲的内容,觉得写的不错,给个赞可以吗!
如果在文章中发现有的地方有问题,可以私信我或者在评论区讨论,我在看到的第一时间会即时更正,感谢观赏。