字典
1. 应用场景&&定义
·数据顺序发生变化,每个数据的下标也会随之变化,如何保证数据顺序变化前后能使用同一的标准查找数据呢?
·字典 --> 字典中数据以 键值对形式出现,字典数据与数据顺序没有关系,也即 字典不支持下标,后期无论数据如何变化,都只需要按照对应的键的名字查找数据即可。
2. 语法
·特点:
符号:大括号
数据:键值对形式出现
各个键值对之间以逗号隔开
·注意:一般称冒号前的为键key,简称k;冒号后面的为值value,简称v
# 定义/创建字典
# 创建有数据字典
stu_info = {'name':'Lcj','gender':'male','age':20,'stu_num':201822111310105}
print(type(stu_info))
# 创建空字典
dict01 = {}
print(type(dict01))
dict02 = dict()
print(type(dict02))
<class 'dict'>
<class 'dict'>
<class 'dict'>
3. 字典常用操作
3.1 增/改
·语法:字典序列[key] = 值
·注意:如果key存在则修改这个key对应的值,不存在则新增此键值对(字典为可变数据类型)
print(stu_info)
# 修改
stu_info['age'] = 18
print(stu_info)
# 增加
stu_info['major'] = 'Bigdata'
print(stu_info)
{'name': 'Lcj', 'gender': 'male', 'age': 20, 'stu_num': 201822111310105}
{'name': 'Lcj', 'gender': 'male', 'age': 18, 'stu_num': 201822111310105}
{'name': 'Lcj', 'gender': 'male', 'age': 18, 'stu_num': 201822111310105, 'major': 'Bigdata'}
3.2 删
·del()/del:删除字典或删除字典中指定键值对
·clear():清空字典
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
# 删除指定键值对
del dict1['gender']
print(dict1)
# 清空字典
dict1.clear()
print(dict1)
# 删除字典
del dict1
print(dict1)
{'name': 'Tom', 'age': 20}
{}
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-4-31a32b3011ab> in <module>
11 # 删除字典
12 del dict1
---> 13 print(dict1)
NameError: name 'dict1' is not defined
3.3 查
3.3.1 key值查找
·如果当前查找的key存在,则返回对应值,否则报错
# key值查找
print(stu_info['stu_num'])
print(stu_info['sex']) # 不存在,会报错
3.3.2 get()方法
·语法:字典序列.get(key,默认值)
·注意:如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
# get()方法
print(dict1.get('gender')) # 正常查询到数据
print(dict1.get('id')) # 查找的key不存在,返回默认值None
print(dict1.get('id','404 NOT FOUND')) # 查找的key不存在,返回设定的参数404 NOT FOUND
男
None
404 NOT FOUND
3.3.3 keys()
·返回字典序列的所有key值
# keys()方法
print(dict1.keys())
dict_keys(['name', 'age', 'gender'])
3.3.4 values()
·返回字典序列所有的value值
# values()方法
print(dict1.values())
dict_values(['Tom', 20, '男'])
3.3.5 items()
·返回字典序列所有的键值对
# items()方法
print(dict1.items())
dict_items([('name', 'Tom'), ('age', 20), ('gender', '男')])
4. 字典的循环遍历
4.1 遍历key/value
print(f"字典为:{dict1}\n")
# 遍历字典的key
print("遍历字典的key:")
for key in dict1.keys():
print(key)
print()
# 遍历字典的value
print("遍历字典的value:")
for value in dict1.values():
print(value)
字典为:{'name': 'Tom', 'age': 20, 'gender': '男'}
遍历字典的key:
name
age
gender
遍历字典的value:
Tom
20
男
4.2 遍历字典的元素/键值对
# 遍历字典的元素
print("遍历字典的元素")
for item in dict1.items():
print(item)
print()
# 遍历字典的键值对
print("遍历字典的键值对")
for key,value in dict1.items():
print(f"{key} = {value}")
遍历字典的元素
('name', 'Tom')
('age', 20)
('gender', '男')
遍历字典的键值对
name = Tom
age = 20
gender = 男