dict 字典,它是无序的,不可重复的,可变的存储键值对的容器类型
1.dict的定义
# 创建一个dict 直接创建赋值用`{}`括起来的键值对,key不能是列表
dic = {"name":"小明", "age":18,"sex", "男",("k1","k2"):"value"}
# 使用 fromkeys()静态方法创建
# 创建字典 fromkeys() 传递两个参数 第一个key 第二个value key是可遍历的参数对象 value无论传递进来的是什么类型 会被当做一个整体
info = dict.fromkeys({"key1", "key2", "key3", "key4"}, "value")
2.获取dict中的元素
# 因为字典是无序的,所以不能根据索引和切片来获取
# 根据key来获取 当key不存在时 程序会报错
dic ={"name":"小明", "age":18,"sex", "男",("k1","k2"):"value"}name = dic["name"] # 使用字典中的方法 get()来获取,key不存在时不会报错,返回None,若自定义值则返回自定义的值 name = dic.get("name") # 返回None course = dic.get("course") # 返回 null course = dic.get("course","null")
3.字典元素的修改和删除
# 直接修改 若不存在该key 则会创建一个新的key-value
dic = {"name":"小明", "age":18,"sex", "男",("k1","k2"):"value"}
# 把小明改成小红
dic["name"] = "小红"
# 创建了新的键值对
dic["key"] = "value"
# 如果key不存在,设置key 和value 并返回value 如果key存在则返回原来的value 且不改变原来的key的value
v = dic.setdefault("name2", "yang")
# 更新 传入的是字典的参数类型,若key不存在则是新增 若key存在则是修改他的值
dic.update({"name": "小明", "password": "123456"})
# del 根据key删除
del dic["sex"]
# pop() 根据 key删除
dic.pop["name"]
# 若key不存在 程序报错
dic.pop["kk"]
# 若key不存在 返回自定义参数null,若存在返回其value值
result = dic.pop["kk","null"]
#popitem() 返回并删除字典中的最后一对键和值 返回的是一个key-value的元组 若字典为空则程序报错
dic.popitem()
# 清空字典
dic.clear()
4.字典的遍历
# 字典不能使用while来遍历,因为他是无序的
# 使用for遍历 每次遍历的顺序都是不确定的
dic = {"name":"小明", "age":18,"sex", "男",("k1","k2"):"value"}
# 遍历的是key
for item in dic:
print(item)
#遍历的是key
for k in dic.keys():
print(k)
# 遍历的是value
for v in dic.values():
print(v)
#遍历的是键值对
for k,v in dic.items():
print(k,v)