#字典
#dict
#数据类型划分:可变数据类型,不可变数据类型
#不可变数据类型:元组,bool,int,str 可哈希
#可变数据类型:list,dict set 不可哈希
#dict key 必须是不可变数据类型,可哈希,
#value:任何数据类型
#dict优点:二分查找云查询
# 存储大量的关系型数据
# 特点:无序的
# dic={
# 'name':['大猛','小孟'],
# 'py9':[{'num':71,'avg':18}],
# True:1,
# (1,2,3):'wuyiyi',
# 2:'二哥'
# }
# print(dic)
dic1={'age':18,'name':'jin','sex':'male',}
#增
dic1['high']=185#没有键值对,添加
dic1['age']=16#如果的键,则值覆盖
#dic1.setdefault('weight')
#dic1.setdefault('weight',150)
# dic1.setdefault('name','二哥')#有键值不做任何改变,没有才添加
# print(dic1)
#删 pop popitem del clear
#print(dic1.pop('age'))#有返回值,按键删除
# print(dic1.pop('二哥',None))#可设置返回值
# print(dic1)
# dic1.popitem()#随机删除 有返回值 元组 删除的是键值
# print(dic1)
# del dic1['name']#删除指定键
# print(dic1)
# dic1.clear()#清空字典
#改 update
# dic={'name':'jin','age':18,'sex':'male',}
# dic2={"name":"alex","weight":75}
# dic2.update(dic)
# print(dic)
# print(dic2)
#查
# print(dic1.keys(),type(dic1.keys()))
# print(dic1.values())
# print(dic1.items())
# for i in dic1.keys():#打印键
# print(i)
# for i in dic1.values():#打印值
# print(i)
# for i in dic1.items():#打印键值对
# print(i)
# for k,y in dic1.items():
# print(k,y)
# print(dic1['name'])#指定键打印值
# print(dic1.get('name1','没有这个键'))
# a,b=1,2
# print(a,b)
# a=1
# b=2
# a,b=b,a
# print(a,b)
# a,b=[1,2],[3,4]
# print(a,b)
#嵌套
dic={
'name':['alex','wusir','taibai'],
'py9':{
'time':'123',
'learn_money':19800,
'addr':'CBD',
},
'age':21
}
# dic['age']=56
# print(dic['name'])
# dic['name'].append('ritian')#添加ritian
# print(dic)
# dic['name'][1]=dic['name'][1].upper()#wusir全部大写
# print(dic)
#添加键值对
# dic['py9']['female']=6
# print(dic)
# info=input('>>>') #fhdilsfja5456d11df12dsf12khlk
# for i in info:
# if i.isalpha():
# info=info.replace(i," ")
# l=info.strip()
# print(len(l))
# dict:
# dic={'name':'alex'}
# 增:dic['age']=21 存在就覆盖
# dic.setdefault()没有就增加
# 删除:pop()按照key删除,有返回值
# clear
# del dic['name']
# popitem()随机删除,返回的是元祖
# 改 updqte
# 查
# dic.keys()
# dic.values()
# dic.items()
# for k,v in dic.items():
# print(k,v)
# dic.get(key,None)
# 元祖分类,有如下值li=[11,22,33,44,55,66,77,88,99,90],将所有大于
# 66的值保存到字典的第一个key中,将小于66的值保存到第二个key的值中,
# 即:{'k1':大于66的所有值列表,'k2':小于66的所有值列表}
# li=[11,22,33,44,55,66,77,88,99,90]
# dic={}
# l_greater=[]#大于66的所有列表
# l_less=[]#小于66的所有列表
# for i in li:
# if i==66:continue
# if i>66:
# l_greater.append(i)
# else:
# l_less.append(i)
# dic.setdefault('k1',l_greater)
# dic.setdefault('k2',l_less)
# print(dic)
# 4、输出商品列表,用户输入序号,显示用户选中的商品
# 商品 li = ["手机", "电脑", '鼠标垫', '游艇']
# 要求:1:页面显示 序号 + 商品名称,如:
# 1 手机
# 2 电脑
# …
# 2: 用户输入选择的商品序号,然后打印商品名称
# 3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
# 4:用户输入Q或者q,退出程序。
# while 1:
# li = ["手机", "电脑", '鼠标垫', '游艇']
# for i in li:
# print('{} {}'.format(li.index(i)+1,i))
# num_of_chioce=input('请输入选择的商品序号/输入Q或者q退出程序: ')
# if num_of_chioce.isdigit():
# num_of_chioce=int(num_of_chioce)
# if num_of_chioce>0 and num_of_chioce<=len(li):
# print(li[num_of_chioce-1])
# else:print('请输入有效数字')
# elif num_of_chioce.upper()=='Q':break
# else:print('请输入数字')