特点:容器,键值对,无序(py36之前无序,以后有序),可变类型
注意:字典中的值可以是任意类型,键必须是哈希类型:str、int、bool、tuple
info={"k1":123,"k2":456}
user_list=[{"name":"张三","age":"12"},{"name":"李四","age":"15"}]
1.独有功能
get、keys、values、items
*根据键获取值
info={
"name":"张三"
"age":"12"
"leve":"1"
"hobby":["羽毛球","足球"]
}
for data in info.values(): #高仿列表["张三","12","1",["羽毛球","足球"]]
print(data)
*获取所有键
info={
"name":"张三"
"age":"12"
"leve":"1"
"hobby":["羽毛球","足球"]
}
for data in info.keys(): #高仿列表["name","age","leve","hobby"]
print(data)
*获取所有值
info={
"name":"张三"
"age":"12"
"leve":"1"
"hobby":["羽毛球","足球"]
}
for data in info.values(): #高仿列表["张三","12","1",["羽毛球","足球"]]
print(data)
*获取所有键值对
info={
"name":"张三"
"age":"12"
"leve":"1"
"hobby":["羽毛球","足球"]
}
for data in info.items():
print(data) #("name":"张三")
for data in info.items():
print(data[0],data[1]) #"name","张三"
for k,v in info.items():
print(k,v) #"name","张三"
2.公共功能
*长度
info={
"name":"张三"
"age":"12"
"leve":"1"
"hobby":["羽毛球","足球"]
}
len(info) #4
*索引(用键做索引)
info={
"name":"张三"
"age":"12"
"leve":"1"
"hobby":["羽毛球","足球"]
}
info["name"]="lisi" #有就更新
info["email"]="123@qq.com" #没有就新增
del info["level"] #删除
*不支持切片
*for循环
info={
"name":"张三"
"age":"12"
"leve":"1"
"hobby":["羽毛球","足球"]
}
for k in info.keys():
print(k)
for v in info.values():
print(v)
for k,v in info.values():
print(k,v)
*in包含
v1={"k1":123,"k2":234}
data="k1" in v1 #键中是否包含k1
v1={"k1":123,"k2":234}
data="k1" in v1.keys() #键中是否包含k1
data="k1" in v1.values() #值中是否包含k1
字典必须是可哈希类型:int,bool,tuple,str
3.练习
提示用户输入信息,处理并构造字典
info={}
text=input("请输入:") #"xx,999"
data_group=text.split(",")
n1=data_group[0]
n2=data_group[1]
info[n1]=n2 #添加字典“n1”:"n2"
print(info)
用户注册
user_list=[]
while True:
name=input("用户名")
if name.upper()=="Q":
break
pwd=input("密码")
info={"username":name,"password":pwd}
user_list.append(info)
print(user_list)
user_list=[]
while True:
name=input("用户名")
if name.upper()=="Q":
break
pwd=input("密码")
info={}
info["username"]=name
info["password"]=pwd
user_list.append(info)
print(user_list)
录入商品列表,手动录入商品名+价格
goods=[]
info={}
while True:
name=input("请输入商品名:")
if name.upper()=="Q":
break
price=input("请输入价格:")
if price.isdecimal():
info["title"]=name
info["price"]=price
goods.append(info)
else:
print("格式错误")
print(goods)
在以上代码上补充
输出商品:
1.电脑,价格:1000
2.手机,价格:2000
选择商品 1——> 输出{"title":"手机","price":1000}
goods=[]
while True:
name=input("请输入商品名:")
if name.upper()=="Q":
break
price=input("请输入价格:")
info = {}
info["title"]=name
info["price"]=price
goods.append(info)
print(goods)
for i in range(len(goods)): #给i添加索引
text="{}.{},价格:{}".format(i+1,goods[i]["title"],goods[i]["price"])
print(text)
while True:
choice=input(f"请选择序号:1-{len(goods)},q或Q退出:")
if choice.upper()=="Q":
break
if choice.isdecimal() :
choice=int(choice)
index=choice-1
print(goods[index])
else:
print("请输入数字")
car={"电脑":1,"手机":2}
#判断手机中是否存在手机
if"手机"in car:
new_count=car["手机"]+1
car["手机"]=new_count
else:
car["手机"]=1
在以上代码上补充
添加到购物车并计算总金额
car=[]
total_price=0
car.append(info["title"])
totle_price=total_price+info["price"]
print(car)
print(totle_price)