一、概念
字典是非常常用的一种数据结构,它与json格式的数据非常相似,核心就是以键值对的形式存储数据,字典是通过名字来引用值的数据结构,并且把这种数据结构称为映射,字典中的值没有特殊的顺序,都存储在一个特定的键(key)下,键可以是数字、字符串甚至元组。字典也是python中唯一内建的映射类型。
二、表达式
字典的存储方式为 key : value
注意:key是要唯一的,一般都是字符串,value可以包含任何类型的数据 , 字典是无序的
# 空字典
dict_1 = {}
# 非空字典
person_message = {"name" :"lzx","age":23,"city":"广州"}
三、基本方法
1、字典查询
方法一:通过key查找出value值
格式:字典名称[key]
person_message = {"name" :"lzx","age":23,"city":"广州"}
print(person_message["age"]) #结果为23
方法二:通过get方法查找出value值
格式:字典名称.get(key)
person_message = {"name" :"lzx","age":23,"city":"广州"}
print(person_message.get("age")) #结果为23
注意:字典中存在key值才能获取到相对应的value值,不存在key会报错:keyError
person_message = {"name" :"lzx","age":23,"city":"广州"}
print(person_message["hobby"]) # 结果会报错
2、删除字典里面的元素
方法一 pop
格式:字典名称.pop(key)
person_message = {"name" :"lzx","age":23,"city":"广州"}
person_message.pop("name")
print(person_message) # 结果为 {"age":23,"city":"广州"}
方法二 del
格式:del 字典名[key]
person_message = {"name" :"lzx","age":23,"city":"广州"}
del person_message["name"]
print(person_message) # 结果为 {"age":23,"city":"广州"}
3、清空字典里的元素
格式:字典名称.clear()
person_message = {"name": "lzx", "age": 23, "city": "广州"}
person_message.clear()
print(person_message) # 结果为{}
4、往字典新增元素key-value
格式:字典名称[新key] = value
注意:新key表示Key不存在于字典,执行的是添加字典元素的操作
person_message = {"name": "lzx", "age": 23, "city": "广州"}
person_message["name"] = "lxr"
print(person_message) # 结果为{'name': 'lxr', 'age': 23, 'city': '广州'}
5、修改字典里面的元素
格式:字典名称[旧key] = value
注意:旧key表示key存在于字典,执行的是修改字典元素的操作
person_message = {"name": "lzx", "age": 23, "city": "广州"}
person_message["hobby"] = "sing"
print(person_message)
# 结果为{'name': 'lzx', 'age': 23, 'city': '广州', 'hobby': 'sing'}
6、设置默认值
格式:字典名称.setdefault(key,默认的value)
注意:如果key存在,不会修改;如果key不存在,则会添加键值对
person_message = {"name": "lzx", "age": 23, "city": "广州"}
person_message.setdefault("hobby":"sing")
person_message.setdefault("name":""lzx)
print(person_message)
# 结果为person_message = {"name": "lzx", "age": 23, "city": "广州","hobby":"sing"}
7、两个字典合并
格式:旧字典.update(新字典)
注意:将新字典合并到旧字典当中
person_message = {"name": "lzx", "age": 23, "city": "广州"}
person_message2 = {"hobby":"sing","sex":"boy"}
person_message.update(person_message2)
print(person_message)
# 结果为 {"name": "lzx", "age": 23, "city": "广州","hobby":"sing","sex":"boy"}
8、获取所有的keys
格式:字典.keys()
person_message = {"name": "lzx", "age": 23, "city": "广州"}
person_message.keys()
# 结果为dict_keys(['name', 'age', 'city'])
9、获取所有的values
格式:字典.values()
person_message = {"name": "lzx", "age": 23, "city": "广州"}
print(person_message.values())
# 结果为dict_values(['lzx', 23, '广州'])
10、同时获取所有的key-value
格式:字典.items()
person_message = {"name": "lzx", "age": 23, "city": "广州"}
print(person_message.items())
# 结果为dict_items([('name', 'lzx'), ('age', 23), ('city', '广州')])
11、成员运算符
格式:key in 字典
注意:返回Ture和Flase
person_message = {"name": "lzx", "age": 23, "city": "广州"}
print("name" in person_message.keys()) # 结果为True