字典
# 字典
'''
数据类型划分:可变数据类型,不可变数据类型
不可变数据类型:元组, bool, int, str 可哈希
可变数据类型:列表, 字典, 集合 不可哈希
dict key 必须是不可变数据类型,可哈希
value 任意数据类型
dict 优点:二分查找去查询
存储大量的关系型数据
特点:无序的 3.5以前版本
'''
dic = {
'name': ['guo', 'wang'],
'age': [23, 47],
True: 1,
(1, 2, 3): '无意义',
2: 'guo'
}
print(dic)
增删改查
#增删改查
dic1 = dic
# 增 有键则覆盖 无键则增加
dic1['height'] = 186
dic1[True] = 2
print(dic1)
dic1.setdefault('weight', 150)
# 如果有weight这个键就不做任何操作
dic1.setdefault('weight')
print(dic1)
# 删
dic1.pop('age')
# pop返回值是该键的value 如果pop里的值没有会报错
# 如果想不报错删除字典不含有的键 添加参数返回None
dic1.pop("郭大哥", None)
print(dic1)
# 3.5版本随机删
dic1.popitem()
print(dic1)
# 清空字典内容
# dic1.clear()
# 删除字典或者键值对
del dic1['name']
print(dic1)
# del dic1
# 改
dic1['height'] = 185
# 更新 相同键更新值 不相同的键值对添加
dic2 = {'name': '2', 'age': 18, 'sex': 'male'}
dic3 = {'name': 'alex', 'weight': 75}
dic2.update(dic3)
print(dic2)
# 查
# 字典中键列表
print(dic2.keys())
# 字典中值列表
print(dic2.values())
# 字典中键值对列表 键值对通过元组包括
print(dic2.items())
# 默认打印键
for i in dic2:
print(i)
for i in dic2.items():
print(i)
for i in dic2.items():
print(i[0], i[1])
for k, v in dic2.items():
print(k, v)
# 比直接用dic2['name']好在如果没有键可以返回自定义默认值而不是报错
name = dic2.get('name1', 'default')
print(name)
dic = {
'name': ['alex', 'wusir', 'taibai'],
'py9': {
'time': '1213',
'money': 19800,
'addr': 'CBD',
},
'age': 21
}
dic['age'] = 23
dic['height'] = 186
dic['name'].append('guo')
dic['name'][1] = dic['name'][1].upper()
dic['py9']['gender'] = 'male'
# dic['py9'].setdefault('gender', 'male')
print(dic)