"""
由于类表只能通过下标访问到值,不能精确定位,所有产生了字典
1.字典和列表一样,都能存储数据
2.列表的存储没有限制,但字典有:
1)字典的key不能重复
2)字典的不能是可变类型
3.字典的查找是通过key进行,列表是通过下标
4.字典是成对存在的
以key:value
比如:"name":"张三"
创建字典:
dic = {}
"""# ************************************************************
dic ={}print(dic)# ************************************************************"""
1.字典的增加操作:
字典[键] = 值
2.字典的修改操作:
字典[键] = 值
注意:
如果键不在字典中,则赋值为增加操作
如果键在字典中,则赋值为修改操作
如果字典在创建的时候出现键重复,则已最后一个为准
3.字典的删除操作
del 字典[键]
字典.clear() #清空操作
注意:
如果删除不存在的键,会报keyerror错误
不能直接使用del字典
"""# ************************************************************
dic ={}print(dic)
dic["name"]="葫芦娃"print(dic)
dic["zy"]="救爷爷"print(dic)del dic["zy"]print(dic)
dic.clear()print(dic)# ************************************************************"""
从键盘录入学生信息:姓名 name 学号 ID 班级 class
录入三个学生保存起来
"""# ************************************************************
list1 =[]
i =1
n =1while i :
dic ={}
name =input("请输入姓名:")
ID =input("请输入学号:")
class1 =input("请输入班级:")
dic["name"]= name
dic["ID"]= ID
dic["class1"]= class1
list1.append(dic)print("第%d学生信息录入成功"%n)
n +=1
i =int(input("若要继续输入学生信息请输入1,停止则输入0:"))print(list1)# ************************************************************"""
读取操作
"""
list2 =[{'name':'zs','ID':'001','class1':'1701'},{'name':'ls','ID':'002','class1':'1701'},{'name':'ww','ID':'003','class1':'1701'}]for i inrange(len(list2)):if list2[i]["name"]=="ls":print(list2[i])# ************************************************************"""
字典的循环
key:value 的形式存在
第一种:
for i in 字典:
print(i)
第二种:
for i in keys:
print(i)
第三种:
for i,j in items:
print(i.j)
第四种:
for i in v:
print(i)
"""
dic ={"name":"zs","sex":"男","class1":"1001"}#使用第一种:得到的是key的值for i in dic:print(i)#使用二种:得到的是key的值for i in dic.keys():print(i)#使用第三种:得到的是key和值的值for i,j in dic.items():print(i,j)#使用第四种:得到value的值for i in dic.values():print(i)"""
如果字典中的键不存在,我们又进行调用了,就会出错
为了避免因为key不存在出现的错误,咋们在输出之前先检查是否存在:
字典.get(需要查询的key)
"""#print(dic.get("ID"))whileTrue:print("输入Q,退出循环!")
str1 =input("请输入要查询的值:")if str1 =="Q":print("谢谢使用,欢迎下次再来!")breakelif dic.get(str1)==None:print("该键不存在")else:print(dic[str1])