字典
字典的概念:
字典类型定义
映射是一种键(索引)和值(数据)的对应
映射
key value
张三 18
李四 20
王五 30
•键值对:键是数据的索引的扩展
•字典是键值对的集合,键值对之间无序(没有索引)
•采用大括号{}和dict()创建,键值对用冒号:表示
•字典的类型是"映射"的体现
•<字典变量> = {<键1>:<值1>, … , <键n>:<值n>}
例如:
#创建
dict01 = {"张三":18,"李四":20,"王五":80}
dict02 = dict()
dict03 = dict({"张三":90,"李四":20})
print(dict01) #{'张三': 18, '李四': 20, '王': 80}
print(dict02) #{}
print(dict03) #{'张三': 90, '李四': 20}
Python-字典的增
语法:
dict01[新的key] = 新的值 添加数据
例如:
- 这边就以王者为例
dict01["小乔"] = "天魔缭乱"
print(dict01) #{'鲁班': '空中支援', '花木兰': '切换形态', '孙策': '开船', '元哥': '无敌时间移位', '小乔': '天魔缭乱'}
Python-字典的删
dict.pop(key) 根据key删除一对数据
dict.clear() 清除所有数据
dict.popitem() 删除最后一个值,并返回删除的值
例如:
#删
dict01 = {"鲁班":"空中支援","花木兰":"切换形态","孙策":"开船","元歌":"无敌时间"}
dict.pop(key) 根据key删除数据
dict.clear() 清除所有数据
dict.popitem() 方法返回的是最末尾的键值对
dict01.pop("元歌")
print(dict01) #{'鲁班': '空中支援', '花木兰': '切换形态', '孙策': '开船'}
Python-字典的改
只能修改值,不可以修改key
为什么:因为key是唯一的,不能重复的 避免出现重复的,所以不能修改
怎么修改:
先现根据key拿到值
再进行重新赋值
例如:
#改
dict01 = {"鲁班":"空中支援","花木兰":"切换形态","孙策":"开船","元歌":"无敌时间"}
只能修改值,不可以修改key
为什么:因为key是唯一的,不能重复的 避免出现重复的,所以不能修改
怎么修改:
先现根据key拿到值 dict01["孙策"] = "乘风破浪"
再进行重新赋值
dict01["孙策"] = "乘风破浪"
print(dict01) #{'鲁班': '空中支援', '花木兰': '切换形态', '孙策': '乘风破浪', '元歌': '无敌时间'}
Python-字典的查
dict01 = {"鲁班":"空中支援","花木兰":"切换形态","孙策":"开船","元歌":"无敌时间"}
#dict.key() 查看所有keys()
print(dict01.keys())#dict_keys(['鲁班', '花木兰', '孙策', '元歌'])
#dict.value() 查询所有dict.values()
print(dict01.values()) #dict_values(['空中支援', '切换形态', '开船', '无敌时间'])
'''
查询单个值
1.dict[key] 利用key查询value
2.dict.get(key,默认值) 利用key查询value 如果key没有,那么就输出默认值
'''
print(dict01["花木兰"]) #切换形态
print(dict01.get("花木兰")) #切换形态
print(dict01.get("貂蝉","没有此英雄,请购买")) #没有此英雄,请购买
'''
查询所有值(包括key和value)
1.直接打印字字典名
2.dict.items() 迭代方法
'''
print(dict01) #{'鲁班': '空中支援', '花木兰': '切换形态', '孙策': '开船', '元歌': '无敌时间'}
print(dict01.items()) #dict_items([('鲁班', '空中支援'), ('花木兰', '切换形态'), ('孙策', '开船'), ('元歌', '无敌时间')])
常用的函数和方法
例如:
"""
k in dict key在不在字典里面
如果在输出True 如果不在输出False
为什么 20 in dict0
原因是他只能判断key在不在,不能判断value在不在
"""
print("张三" in dict01) #True
print(20 in dict01) #False
例如:
"""
dict01.update(dict02) 把02中的数据更新到01中
更新是更新多个数据
是复制吗? no
但是你可以理解成添加数据
"""
#创建字典
dict01 = {"张三":20,"王五":30,"赵六":70,"李四":80}
dict02 = {"翠花":20,"光头强":10}
dict01.update(dict02)
print(dict01) #{'张三': 20, '王五': 30, '赵六': 70, '李四': 80, '翠花': 20, '光头强': 10}
print(dict02) #{'翠花': 20, '光头强': 10}
例如:
#创建字典
dict01 = {"张三":20,"王五":30,"赵六":70,"李四":80}
dict02 = {"翠花":20,"光头强":10}
"""
del 字典名[key] 删除指定位置的数据
和pop一样
dict.pop(key) 删除指定位置的数据
"""
del dict01["李四"]
print(dict01) #{'张三': 20, '王五': 30, '赵六': 70}