• <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)
    加油,你们是最棒的!
  • 相关阅读:
    字符串,format格式化及列表的相关进阶操作---day07
    利用wiile双层循环打印各种星星---day06
    双层循环练习,pass_break_continue,和for循环---day06
    类型判断,代码块,流程控制及循环---day05
    频繁项集算法
    Unity 物体移动的理解
    Game1---游戏设计
    精读Hadamard Response论文
    java 创建线程
    Unity游戏开发面试基础知识
  • 原文地址:https://www.cnblogs.com/Wshile/p/12574073.html
Copyright © 2020-2023  润新知