数据类型-字典
字典
也是python最常用的数据类型之一,不同与list
或者str
,字典的定义是以键值对
,键和值之间用:
分隔,多个键值对用 ,
分隔,键
通常是由不可变类型
,列表
不可以作为键,创建的方式是以一对{}
。
1. 特点
-
字典中的键是唯一的
: 如果由重复,后面的键会覆盖之前的 python3.6以前字段是无序的,3.6之后是有序的
字典不支持索引切片
字典为可变类型
示例
# 创建有值的字典
dict1 = {'name': 'Tom', 'age': 20, 'gender': 'male'}
dict2 = dict(name='tome',age=20, gender='male')
# 空字典
dict3 = {}
dict4 = dict()
一般称冒号前面的为键(key)
,简称k
;冒号
后面的为值(value)
,简称v
。
2. 字典的常见操作
2.1 增
字典
中的增
就是为字典添加键值对
,
语法
字典序列[key] = 值
如果key存在
则修改这个key对应的值
;如果key不存在
则新增此键值对
示例
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
dict1['name'] = 'Rose'
print(dict1)
# 结果:{'name': 'Rose', 'age': 20, 'gender': '男'}
dict1['id'] = 110
print(dict1)
# {'name': 'Rose', 'age': 20, 'gender': '男', 'id': 110}
3.2 删
del:删除字典或删除字典中指定键值对
示例
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
del dict1['gender']
print(dict1)
# 结果:{'name': 'Tom', 'age': 20}
-
clear()
:清空字典
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
dict1.clear()
print(dict1)
# 结果: {}
3.3 改
语法
字典序列[key] = 值
如果key存在
则修改这个key对应的值
;如果key不存在
则新增此键值对
3.4 查
3.4.1 按 key 查找
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1['name'])
# 结果: Tom
print(dict1['id'])
# 结果: 报错
如果key
不存在字典中,程序抛出异常KeyError: key
3.4.2 get()
语法
字典序列.get(key, 默认值)
如果当前查找的key不存在
则返回第二个参数(默认值)
,如果省略第二个参数
,则返回None
,这样的好处是程序不会抛异常
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1.get('name'))
# 结果: Tom
print(dict1.get('id', 110))
# 结果: 110
print(dict1.get('id'))
# 结构: None
3.4.3 keys()
语法
字典序列.keys()
示例
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1.keys())
# 结果: dict_keys(['name', 'age', 'gender'])
多搭配循环使用, 返回一个list
, 里面存放的是当前dict
的所有kkey
3.4.4 values()
语法
字典序列.values()
示例
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1.values())
# 结果: dict_values(['Tom', 20, '男'])
多搭配循环使用, 也是返回一个list
, 里面存放的是当前dict
的所有value
3.4.5 items()
语法
字典序列.items()
示例
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1.items())
# 结果: dict_items([('name', 'Tom'), ('age', 20), ('gender', '男')])
多搭配循环使用,返回也是一个list
, 里面是以元祖
的形式存放dict
的key
和value
4.常见的集中字典循环遍历
4.1 遍历字典中的 key
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for key in dict1.keys():
print(key)
4.2 遍历字典的value
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for value in dict1.values():
print(value)
4.3 遍历字典的元素
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for key, value in dict1.items():
print(f'{key} = {value}')