# 在字典结构当中,value里面传进来什么东西都是可以的。key值一般都是字符串,而value值可以是列表,数值,字符串都可以
tang_value = [1, 2, 3] # list结构
tang = {} # 字典结构
tang['yudi'] = tang_value
tang['yudi2'] = 3
tang['yudi3'] = '4'
print(tang) # 结果:{'yudi': [1, 2, 3], 'yudi2': 3, 'yudi3': '4'}
# 字典和字典也可以进行相互嵌套
tang = {}
d1 = {'tang': 123, 'yudi': 456}
d2 = {'tang2': 456, 'yudi2': 789}
tang['test1'] = d1
tang['test2'] = d2
print(tang)
# 结果: {'test1': {'tang': 123, 'yudi': 456}, 'test2': {'tang2': 456, 'yudi2': 789}}
# 改变字典中的值,改变key中的值
print(tang) # {'tang': 123, 'yudi': 456}
tang['tang'] += 1 # 对键值进行操作
print(tang) # {'tang': 124, 'yudi': 456}
# 取值
a = tang.get('tang')
print(a) # 124
b = tang['tang']
print(b) # 124
c = tang.get('fengzi', '没有这个值')
# get中有这个方法,如果没有找到这个值,则可以按照自己定义的数值来
print(c) # 没有这个值
# 一般不用get方法,直接用键名可以直接拿出来
d = tang.pop('tang')
print(d) # 124
print(tang) # {'yudi': 456}
# del操作
del tang['yudi'] # 删除这个键值
print(tang) # 结果:{}
# update操作:加的给你加进去,改的给你改了,原来没有出现的的保留
tang = {'tang': 123, 'yudi': 456}
tang2 = {'tang': 789, 'python': 888}
tang.update(tang2) # updata有更新操作,保留一个字典不变,在其中一个字典中增加一个东西再改变一个东西
print(tang) #结果: {'tang': 789, 'yudi': 456, 'python': 888}
# 判断键是不是在字典中
a='tang' in tang
print(a) # True
b='hello' in tang
print(b) # False
# 将键全部打印出来--keys()
print(tang.keys()) # 结果: dict_keys(['tang', 'yudi', 'python'])
# 将所有value值打印出来--values()
print(tang.values()) # dict_values([789, 456, 888])
# 将键和值都打印下来--items()
print(tang.items()) # dict_items([('tang', 789), ('yudi', 456), ('python', 888)])