字典概念
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值对key:value 用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
特点:键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
字典创建
cars = {} # 空字典
cars = dict() # 空字典
cars = {"num1":"京A0988","num2":"京B3467","num3":"京F8212"} # 非空字典
scores = {"mix":[99, 87, 60, "0分", 0.99, True] }# 字典可以存放混合类型
字典的访问
# 方法1.字典 使用 key 键 去访问 对应的value值
# 格式 dict[key] 若没有key 则报错
cars["num1"] > "京A0988"
# 方法2. dict.get(key) # 若key 不存在不报错
cars.get("num4", "不存在') > # 不存在 返回 默认值
字典内置函数
cars = {"num1":"京A0988","num2":"京B3467","num3":"京F8212"}
1.增与改
# 增加与删除的方法一样都是一种格式,没有函数,若不存在key则增加,若存在,则修改。
>>cars["num4"] = "京A1234" # 在字典增加一对key-value
res: cars = {"num1":"京A0988","num2":"京B3467","num3":"京F8212","num4":""京A1234""}
2.删
>>pop(key) # 根据key删除键值对 并返回 value值
cars.pop("京B3467")
>>popitem() # 不用传参,随机删除一组键值对,并返回删除的键值对(元组形式返回),若为空字典,则删除报错
cars.popitem()
>>clear() # 清空内容,不回收地址,空字典。
cars.clear()
res:{}
>>del dict[key] # 根据key 删除键值对 与 pop 类似
del cars["num1"]
>>del dict # 清空内容 回收内存 删除cars
del cars
5.使用迭代对象快速构建字典
>>dict.fromkeys() # 对可迭代对象,进行 字典构建 值 默认None
dict.fromkeys(["1", "2"], 100)
res: {"1": 100, "2":100}
6.取值
>>cars.keys() # 返回 字典的所有key
>>cars.values() # 返回字典的所有value
>>cars.items() # 以元组方式 返回 每个键值对。
for key, value in cars.items():#常用方法对字典进行遍历
print(key, value)
8.计数
>>cars.count("京A0988")
返回列表中"京A0988"元素的个数
字典支持的符号
key in dict 判断key是否在字典中
is 判断两个字典是否id相等
类型转换
1.列表转字典
list1 = [("a", 100), ("b", 20), ("c", 80)]
>>dict(list1) # 只有符合这样格式的列表才能转为字典
2.字典转列表
>>list(dict1) # 只是将keys 放到列表中