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)