十三、python字典dict

发布时间 2023-06-16 16:22:28作者: 村尚chun叔

十三、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)