字典dict
1.定义
my_dict = {}
注:字典和列表是可变类型不能作为key
2.常用的操作
2.1 len(dict) 求长度(获取字典里面键值对的数量)
user_info = {"name":"lemon","age":18,"sex":True,"height":1.75}
# 字典求长度:
print(len(user_info))
运行结果:
4
2.2 dict[“key”] 获取某个值,key不存在会报错
dict.get(key) 获取某个值,key不存在不会报错,返回None
user_info = {"name":"lemon","age":18,"sex":True,"height":1.75}
# 获取某个值(方法一)
print(user_info["age"]
# 获取某个值(方法二)
print(user_info.get("name"))
# 获取某个值(方法三)
print(user_info.get("weight",45))
运行结果:
18
lemon
45
如果要获取某个不存在的键–将会报错
user_info = {"name":"lemon","age":18,"sex":True,"height":1.75}
# 获取某个值--报错
print(user_info["weight"])
# 获取某个值--none
print(user_info.get("weight"))
运行结果:
Traceback (most recent call last):
File "D:/pylin/wen_yuze/week_02/demo_0624.py", line 10, in <module>
print(user_info["weight"])
KeyError: 'weight' # 提示错误的键
None
2.3 dict.keys() 获取字典中所有的key
user_info = {"name":"lemon","age":18,"sex":True,"height":1.75}
# 获取字典中所有的key--返回可迭代的对象
print(user_info.keys())
# 可以通过list装换成列表的格式
print(list(user_info.keys()))
运行结果:
dict_keys(['name', 'age', 'sex', 'height'])
['name', 'age', 'sex', 'height']
2.4 dict.values() 获取字典中所有的value
user_info = {"name":"lemon","age":18,"sex":True,"height":1.75}
# 获取字典中所有的value--返回可迭代的对象
print(user_info.values())
# 可以通过list装换成列表的格式
print(list(user_info.values()))
运行结果:
dict_values(['lemon', 18, True, 1.75])
['lemon', 18, True, 1.75]
补充:
user_info = {"name":"lemon","age":18,"sex":True,"height":1.75}
# 获取键值对--将键值对组成元组
print(user_info.items())
print(list(user_info.items()))
运行结果:
dict_items([('name', 'lemon'), ('age', 18), ('sex', True), ('height', 1.75)])
[('name', 'lemon'), ('age', 18), ('sex', True), ('height', 1.75)]
2.5 dict[key] = new_value 修改值
user_info = {"name":"lemon","age":18,"sex":True,"height":1.75}
# 修改值
user_info["name"] = "柠檬"
print(user_info)
运行结果:
{'name': '柠檬', 'age': 18, 'sex': True, 'height': 1.75}
2.6 dict.update(anthor_dict) 将两个字典合并
user_info = {"name":"lemon","age":18,"sex":True,"height":1.75}
anthor_info = {"moto":"IT",("love",):"red"} # 元组可作为key
# 补充:update返回的是一个None
print(user_info.update(anthor_info))
print(user_info)
运行结果:
None
{'name': 'lemon', 'age': 18, 'sex': True, 'height': 1.75, 'moto': 'IT', ('love',): 'red'}
在这里插入代码片
2.7 dict,pop(key) 删除指定的值(pop会返回删除的值)
user_info = {"name":"lemon","age":18,"sex":True,"height":1.75,"moto":"IT",("love",):"red"}
# 字典中删除指定的key--返回值
print(user_info.pop("height"))
print(user_info)
运行结果:
1.75
{'name': 'lemon', 'age': 18, 'sex': True, 'moto': 'IT', ('love',): 'red'}
2.8 dict.popitem() 删除最后一个key,—这个是python3.7以后满足后进先出也就是每次都是删除最后一个的原因,在python3.7之前都是随机删除
user_info = {"name":"lemon","age":18,"sex":True,"height":1.75,"moto":"IT",("love",):"red"}
# 字典中删除最后一个key--返回键值对
print(user_info.popitem())
print(user_info)
运行结果:
(('love',), 'red')
{'name': 'lemon', 'age': 18, 'sex': True, 'height': 1.75, 'moto': 'IT'}
2.9 dict.clear() 清空字典
user_info = {"name":"lemon","age":18,"sex":True,"height":1.75}
# 清空字典
user_info.clear()
print(user_info)
运行结果:
{}
2.10 dict.setdefault(key,value) key存在不会就该数据 ,key不存在,新建键值对
user_info = {"name":"lemon","age":18,"sex":True,"height":1.75}
# key存在,不会修改数据
user_info.setdefault("name","apple")
print(user_info)
# key不存在,新建键值对
user_info.setdefault("moto","running")
print(user_info)
运行结果:
{'name': 'lemon', 'age': 18, 'sex': True, 'height': 1.75}
{'name': 'lemon', 'age': 18, 'sex': True, 'height': 1.75, 'moto': 'running'}
3.应用场景
在开发中的应用场景
使用多个键值对,存储描述一个 物体 的相关信息,描述更复杂的数据信息
拓展:1.locals()也是字典的类型
2.什么时候使用"[]",什么时候使用"()"
使用"[]"
(1)序列类型通过数字索引取值的时候
(2)切片操作的时候
(3)字典当中通过key取值的时候
(4)多维数组
使用"()":
使用方法的时候可以用"()"