<5>Python开发——字典

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)
加油,你们是最棒的!
原文地址:https://www.cnblogs.com/Wshile/p/12574073.html