# #数据类型划分:可变数据和不可变数据
# 不可变数据类型:元祖,bool,int,str 可哈希
# 可变数据类型:list dict set 不可哈希
# dict的key必须要不可变数据类型 可哈希
# value:任意数据
# dict 优点:二分查找查询
# 存储大量的关系型数据
# 特点:无序的
#
#
# dict的增
# dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
# dic['high'] = 185 #没有键值对,就添加
# dic['age'] = 16 #有键值则覆盖
# print(dic)
# dic.setdefault("weight") #存在则不做任何修改,不存在则添加。没有value则默认为none
# dic.setdefault("weight",150)
# dic.setdefault('name','二哥')
# print(dic)
#删除
# dic.pop('age') #有返回值,按键值删除
# print(dic)
# print(dic.pop('a','没有此键')) #可设置返回值
# dic.popitem() #随机删除,有返回值,3.5之后删除最后位,返回值是元祖,删除键值
# print(dic)
# dic.clear()
# print(dic)
# dic = {"name":"jin","age":18,"sex":"male"}
# dic2 = {"name":"alex","weight":75}
# dic2.update(dic) # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
# print(dic2)
# dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
# #查
# print(dic.get('name1','没有这个值'))
# for i in dic:
# print(i)
# for i in dic.keys():
# print(i)
# for i in dic.values():
# print(i)
# for i in dic.items():
# print(i)
# for i,j in dic.items():
# print(i,j)
# #面试题,只用一行代码实现a和b的值互换
# a = 1
# b = 2
# a,b=b,a
# print(a)
# print(b)
#
#---------嵌套
# dic = {
# 'name':['alex','wusir','taibai'],
# 'py9':{
# 'time':'1213',
# 'lear_money':19800,
# 'addr':'CBD'
# },
# 'age':21
# }
#
# dic['age'] = 56
# dic['name'].append('miaoxiansheng')
# dic['name'][1]=dic['name'][1].upper()
# dic['py9'].setdefault('female','6')
# dic['py9']['sex']=16
# print(dic)
#计算一串数字和字母的字符串中的数字个数,连续算一个(思路:判断获取的字符串是否是字母,如果是则替换成空格,最后用split来
#默认以空格分割成列表,最后计算列表的长度得出有几个数字 )
# info = input('>>>>>')
# for i in info:
# if i.isalpha():
# info = info.replace(i,' ')
# l = info.split()
# print(len(l))
#for循环在读取不可变数据类型的数据时,会把原始数据先存放到for循环里面去,所以当我们
#在for循环当中再次修改这个不可变的数据时,不会对for循环产生影响,依然会按照旧的数据去执行。