一、字典的定义及数据类型
#定义及特点 #字典存储的都是关系型数据。
#可变类型(不可哈希):list/dic/set
#不可变类型(可哈希):str/int/tuple/bool
#容器类:list/dic/tuple
#非容器累:str/int/bool/
#字典中的键必须是可哈希的,唯一的,不可变类型。
#存储大量的关系型数据,值可以改变。
#字典的运算速度快 #py3.5之前是无序的,3.6之后是有序的。
二、字典的增删改查

# 字典: # 增: # dic = { # 'name' : 'liujj', # 'age' : 18, # 'hobby':'book' # } #dic[] # dic['favorateanimal'] = 'cat' # print(dic) # dic['name'] = 'liupeipei' #有则覆盖,相当于字典的改。 # print(dic) #第二种,setdefault() # dic.setdefault('animal','cat') # print(dic) # dic.setdefault('name','liupeipei') #setdefault() 有则原字典不变,不覆盖。 # print(dic) #删 #第一种,pop 有返回值,返回值为键所对应的值。 # print(dic.pop('hobby')) # print(dic) # print(dic.pop('ani','找不到呀')) #直接用‘键’来删除,后面加‘如果没找到则返回的值' # print(dic) #第二种del 可以删除整个字典,也可以按照键来删除 #第三种clear 清空内容 # 第四种pop_item 随机删除(py3种默认删除最后一对)。 # dic.popitem() #有返回值,返回值为元祖,元祖里面是被删除的键值对。 # print(dic) #改 #第一种,直接改,就是增的第一种方法(有则增无则改) # dic['hobby'] = 'play' # print(dic) #第二种,update(),适用于两个字典相互改动。 # dic2 = {'name': 'xiaojia', # 'shengao': '100cm', # 'sex' : 'girl' # } # dic2.update(dic) #有相同的则覆盖,没有则添加。 # print(dic2) #查 #第一种,直接查询,查到的为键所对应的值。 # print(dic['age']) #类似字典的增,直接按键查找,返回为对应的值。dic后为中括号[]。 #第二种,可以有返回值的。 # print(dic.get('animal','找不到啦')) #如果找不到则返回设定的返回值。 #第三种,for循环。 # for i in dic.keys(): #dic.keys,输出字典的各个键,类型为 dic_keys # print(i,type(dic.keys())) # for i in dic.values(): #dic.values,输出字典的各个值,类型为 dic_values # print(i) # for k,v in dic.items(): #dic.items,输出字典的各个键值对,为元祖形式,用两个变量,将元祖的两个值赋给每个变量。 # print(k,v) 如果一个变量,则每一次输出一个元祖。 #字典转换成列表: list(dic.keys()) # print(dic['name']) # # dic = { # 'name_list': ['碗蓉', '俊俊', '爽妹'], # 'status': None, # 'personal_msg': { # 'name': '反面教材', # 'age': 25, # 'hobby_list':['抽烟', '喝酒', '烫头'], # } # } # 1,给dic添加一个键值对,学校:老男孩 # dic['学校'] = '老男孩' # print(dic) # 2,将status对应的值改成True # dic['status'] = True # print(dic) # 3,给name_list对应的列表追加一个元素:平平 # dic['name_list'].append('平平') # print(dic) # 4,给personal_msg对应的字典添加一个键值对sex:男 # dic['personal_msg']['sex'] = '男' # print(dic) # 5,将hobby_list 对应的列表中的烫头改成唱歌。 # dic['personal_msg']['hobby_list'][2] = '唱歌' # print(dic)