# 用途:存放多个值,key:value,存取速度快,无序
# 定义:key必须是不可变类型(int, float, str, tuple),value可以是任意类型
info = {'name': 'egon', 'age': 18, 'sex': 'male'}
dict_info = {}.fromkeys(['name', 'age', 'sex'], None)
print(dict_info) # 输出结果:{'name': None, 'age': None, 'sex': None}
for i in info:
print(i) # 输出结果:name,age,sex
print(info[i]) # 输出结果:egon,18, male
# 删除
info.pop('name')
print(info)
print(info.popitem()) # 输出结果:('sex', 'male')
print(info) # 输出结果:{'age': 18}
# 键keys(),值values(),键值对items()
print(info.keys()) # 输出结果:dict_keys(['age'])
print(list(info.keys())[0]) # 输出结果:age
print(info.values()) # 输出结果:dict_values(['egon', 18, 'male'])
print(list(info.values())) # 输出结果:['egon', 18, 'male']
print(info.items()) # 输出结果:dict_items([('name', 'egon'), ('age', 18), ('sex', 'male')])
# update
list1 = {'name': 'keq', 'age': 18, 'sex': 'femal'}
list2 = {'x': 1, 'y': 2, 'name': 'KEKE'}
list1.update(list2)
print(list1) # 输出结果:{'name': 'KEKE', 'age': 18, 'sex': 'femal', 'x': 1, 'y': 2}
# 如果已经有了还是输出原来的值,如果没有就输入新的值
list1 = {'name': 'keke', 'sex': 'femal'}
list1.setdefault('age', 18)
print(list1) # 输出结果:{'name': 'keke', 'sex': 'femal', 'age': 18}
list2 = {'name': 'keke', 'age': 15, 'sex': 'femal'}
value = list2.setdefault('age', 18)
print(value) # 输出结果:15
print(list2) # 输出结果:{'name': 'keke', 'age': 15, 'sex': 'femal'}
list3 = {'name': 'keke', 'sex': 'femal'}
value = list3.setdefault('age', 18)
print(value) # 输出结果:18
print(list3) # 输出结果:{'name': 'keke', 'sex': 'femal', 'age': 18}
list3.setdefault('hobby', ['music', 'read', 'run'])
print(list3) # 输出结果:{'name': 'keke', 'sex': 'femal', 'age': 18, 'hobby': ['music', 'read', 'run']}
hobby = list3.setdefault('hobby', ['music', 'read', 'run'])
print(hobby) # 输出结果:['music', 'read', 'run']