Python之字典
字典简介
字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成,在dict中key是唯一的,在保存的时候, 根据key来计算出⼀个内存地址,然后将key-value保存在这个地址中,这种算法被称为hash算法,所以, 切记, 在dict中存储的key-value中的key必须是可hash的,如果你搞不懂什么是可哈希, 暂时可以这样记, 可以改变的都是不可哈希的,,那么可哈希就意味着不可变. 这个是为了能准确的计算内存地址⽽规定的。
- 已知的可哈希(不可变)的数据类型: int, str, tuple, bool
- 不可哈希(可变)的数据类型: list, dict, set
注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. 而hash表不是连续的. 所以不能进行切片工作.它只能通过key来获取dict中的数据
示例
dic1 = { "PPP-01": {'172.2.2.201': { "disk": None, "memory": None, "data": None, "slave": None, "time": None}}, }
dic2 = {
"PPP-02": {'172.2.2.202': { "disk": None, "memory": None, "data": None, "slave": None, "time": None}}
}
查找
print(dic1['PTT-01']) # 获取不到key不会报错get('PTT-00', 'wsl') 可以添加默认值 print(dic1.get('PTT-00'))
增加
dic1['PTT-01']['172.16.209.201']['disk'] = '75%' # 没有就添加,有就不生效 dic1['PTT-01']['172.16.209.201'].setdefault('wsl','by')
删除
# 指定删除,返回值为删除的内容 ret = dic1.pop('PTT-01') print(ret) del dic1['PTT-01'] ret = dic1.popitem() dic1.clear() # 清空 dic.clear()
修改
# 将字典1 加入到字典 2,key重名就修改替换,不重名就新增 dic1.update(dic2)
遍历
print(dic1.keys()) print(dic1.values()) for k, v in dic1.items(): print(k, v)