十三、python字典dict
字典:是一种key:value(键值对)类型的数据,它是无序的(没有像列表那样的索引,下标).
它是通过key来找value 底层就是hash表,查找速度快;如果key相等,会自动去重(去掉重复值),也就是说dict中没有重复的key,但是值是可以相等的。
字符串,列表,元组属于序列,所以有下标
1.字典的创建
dict1 = {
'stu01':"zhangsan",
'stu02':"lisi",
'stu03':"wangwu",
'stu04':"maliu",
}
print(type(dict1))
print(len(dict1))
print(dict1)
2.字典的常见操作
# 增
dict1["stu05"] = "田七" # 类似修改,如果key值不存在,则就增加
# 删
dict1.pop("stu02") # 删除这条;也可以del dict1["stu05"]来删除
dict1.popitem() # 删除显示的最后一条
dict1.clear() # 清空字典
print(dict1)
del dict1 # 删除整个字典
# 改
dict1["stu01"] = "张三丰" # 类似增加,如果key值存在,则就修改
# 查
print(dict1["stu01"]) # 如果key值不存在,会返回keyerror错误
print(dict1.get("stu01")) # 这种取值方法如果key值不存在,会返回none,不会返回错误
print(dict1)
3.其他操作
print(dict1.keys()) # 打印所有的keys
print(dict1.values()) # 打印所有的values
print(dict1.items()) # 字典转成列表套元组
# 上面这三种可以使用for来循环遍历
print("stu01" in dict1) # 判断键stud01是否在字典里,在则返回True,不在则返回False
print(list(dict1)) # 这种只能看到key
dict1.setdefault("stu08","老八") # 有这个key,则不改变;没有这个key,则增加这个key和value
# if "stu08" in dict1:
# pass
# else:
# dict1["stu08"]="老八" # 这个判断也可以实现setdefault的方法效果
print(dict1)
dict2={
"stu02":"李四",
"stu09":"老九"
}
dict1.update(dict2) # 把dict2更新到dict1;如果dict2有dict1也有的key,则dict1更新
它的value;如果dict2有,而dict1没有的key,则加到dict1
print(dict1)