今日内容(dict)

1.基本格式

2.独有方法

3.公共

4.强制转换

1.基本格式

  • 字典(可变类型,3.6之后是有序)
  • 帮助用户去表示一个事物的信息(事物是有多个属性)
  • 键值不能为集合,列表,字典等不可hash类型
data={键:值,键:值}
info={"name":"Gao","age":18,"hobby":"music"}#键值对
info['name']
info['age']

1.独有方法

1.keys()
获取字典中所有的键 name age hobby 
#列表 / 字典  内部可以修改删除===>不可以哈希
====>
#键值创建后,就不能被修改  ===>列表 / 字典 不能当做键值   

info={"name":"Gao","age":18,"hobby":"music"}#键值对
print(info.keys())
print(type(info.keys()))
#dict_keys(['name', 'age', 'hobby'])
#<class 'dict_keys'>
#打印出类似列表的一组key值

2.values()

info={"k1":"v1","k2":"v2"}
print(info.values())
print(type(info.values()))
#dict_values(['v1', 'v2'])
#<class 'dict_values'>
#打印出类似列表的一组value值

3.items()
得到的是多个元祖
#获取字典中所有的键值对
for v1,v2 in info.items():
		print(v1,v2)
#('name', 'Gao')
#('age', 18)
#('hobby', 'music')

info={"name":"Gao","age":18,"hobby":"music"}#键值对
print(info.items())
#dict_items([('name', 'Gao'), ('age', 18), ('hobby', 'music')])


4.get(键)
  • 取对应key的value值

  • get相比于index 会自行判断不会报错

u1=["alex",'123',11]
print(u1[123])
#报错  超出范围

info={"k1":"v1","k2":"v2"}
print(info['k111'])
#报错
print(info.get("k111"))#None 空
#None 表示空类型

print(info.get("k111",666)) #如果有值则返回666
#666
5.pop("key")
info={"k1":"v1","k2":"v2"}
result=info.pop('k2')#V2
print(result,info)
#v2 {"k1":"v1"}
#del info['k1']
6.update():更新
#没有就添加,有就更新
info={"k1":"v1","k2":"v2"}
info.update("k3":"v3","k4":"v4")
print(info)
#{"k3":"v3","k4":"v4"}

2.公共方法

1.len()
2.index

​ 索引值就是键值

3.切片/步长:[没有]

因为字典是无序的

4.for:
for key1 in info.keys():
     print(keys)
for v1 in info.keys():
     print(v1)
for k,v in info.items():
     print(k,v)
for val in info:
   #   val==key
   #for 循环默认输出的是键值
5.修改(存在就修改,不存在,就添加)
#1.改值
info['age']=19
print(info)

#2.改键
#删除后再增加
del info['name']
info['XXXX']="x1"
print(info)
6.删除del
del info['name']
print(info)

3.强制转换dict()

4.练习

#1.用户输入键,输出对应的键值
# info={"name":"Gao","age":18,"hobby":"music"}
#键值对
# #print(info.items())
# for k1,v1 in info.items():
#     print(k1,v1)
# val=input("请用户输入:")
# print(info[val])

#2.用户输入键key后  输出value  当用户输入"n"时候结束
# info={}
# while True:
#     k=input("请输入键值:")
#     if k=='n':
#         break
#     v=input("请输入value:")
#     info[k]=v
# print(info)

#3.将mess内容放到字典中以info={"k1":"v1","k2":"v2","k3":"v3"}形式输出
mess="k1|v1,k2|v2,k3|v3"
mess=mess.split(",")
info={}
for ele in mess:
    #print(ele)
    k1,v1=ele.split('|')
    info[k1]=v1
print(info)


#9.创造一个用户列表 直到用户输入N结束,然后让用户输入用户名和密码登录,输入

# user_list=[]
#
# while True:
#     u=input("请输入用户名:")
#     if u.upper()=="N":
#         break
#     p=input("请输入密码:")
#     info={}
#     info['name']=u
#     info["password"]=p
#     user_list.append(info)
#
# print("请登录:")
# count=0
# index=0
# flag=1
# while True:
#     name1=input("请输入用户名:")
#     pass1=input("请输入密码:")
#
#     for ele in user_list:
#        if ele["name"]==name1 and ele["password"]==pass1:
#           flag=0
#           print("登录成功")
#           break
#        else:
#             index += 1
#             if index > len(user_list):
#                 count+=1
#                 print("输入错误,请重新输入:")
#                 break
#             else:
#                 print("继续查找")
#                 continue
#     if count > 3 or flag==0:
#         break


5.总结