python-day05-数据类型dict

特点:容器,键值对,无序(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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值