• Python数据类型之字典


    1、字典介绍

      1.1  结构:  {key1: value1, key2: value2, ....} ,由很多键值对构成. 在字典的key-value(键值对)中, key(键)必须是可哈希(不可变)的, 而且是唯一的.

      1.2  字典的存储机制:  在dict中key是惟一的. 在保存的时候, 根据key, 通过哈希算法计算出一个内存地址, 然后将key-value保存在这个地址中;

                          在查询时, 直接查到key的哈希值 ,然后找到内存地址,将里面的key-value提取出来.

      1.3  可哈希(不可变)的数据类型: str, int, bool, 元组.

        不可哈希(可变)的数据类型: 列表, 字典, 集合.

      1.4  字典不能进行切片,只能通过key来提取出对应的value值.

    2、字典增删改查

      2.1  增

          dic["key"] = "value"

          dic.setdefault("key","value")  ----> 若key存在,不修改value且返回对应的value; 若key不存在,则在字典后面添加新的键值对, 然后输出新的值value.

          dic.setdefault("key")  ----> 查找"key"对应的值, 有则输出value, 没有则输出None.

        删  

          dic.pop("key")  -----> 删除"key" 对应的键值对. 返回值为删除的key对应的value.

          dic.popitem()  ----> 删除最后一组键值对.返回值为删除的(key, value)元组形式.

          del dic["key"]  ----> 删除"key" 对应的键值对.

          dic.clear()  ----> 清空字典,变成{}

        改

          dic["key"] = "value"

          dic1.update(dic2)  ----> 把dic2字典里面的键值对添加到dic1里面去.

        查

          dic["key]  ---->没有值则报错.

          dic.get("key","value")  ---->有key对应的值则返回value, 没有的话则返回新value(第二个参数).

          dic.get("key")  ----> 没有则返回None.

          dic.setdefault("key")  ----> 没有值返回None.

    3、其他操作

      dic.keys()  ----> 输出所有的键.

      dic.values()  ----> 输出所有的值.

      dic.items()  ----> 以元组的形式输出所有的键值对("key","value")("key","value")......

      如何遍历字典?

        for k, v in dic.items():

          print(k, v)    -----> 输出key, value (最佳方式, 推荐使用)

        for k in dic:

          print(k)  ----> 只输出key

      列表转字典

        key_lst = [1,2,3,4,5]

        value_lst = ["a","b","c","d","e"]

        方式一:   dic = {key_lst[i]: value_lst[i] for i in range(len(key_lst)) }

        方式二:   dic = dict(zip(key_lst,value_lst))   

    key_lst = [1,2,3,4,5]
    value_lst = ["a","b","c","d","e"]
    
    dic1 = {key_lst[i]: value_lst[i] for i in range(len(key_lst)) }    # 方式一
    dic2 = dict(zip(key_lst,value_lst))    # 方式二
    print(dic1)
    print(dic2)
    列表转字典

      字典的切割

        dic = {1:"A",2:"B",3:"C",4:"D",5:"E",6:"F",7:"G"}

        index = [1,2,4,7]

        dic_new = dict[ [k,dic[k] ] for k in index ]  ----> {1: 'A', 2: 'B', 4: 'D', 7: 'G'}

    1 dic = {1:"A",2:"B",3:"C",4:"D",5:"E",6:"F",7:"G"}
    2 index = [1,2,4,7]
    3 dic_new = dict([k,dic[k]] for k in index)
    4 print(dic_new)
    字典伪切割

    4、字典的嵌套

      找到子字典(value)对应的key名, 层层剖析.    

         

  • 相关阅读:
    将Mat类型坐标数据生成pts文件
    DelaunayTriangulation_VoronoiDiagram_using_OpenCV的实现
    安装python第三方库
    安装wordcloud第三方库Unable to find vcvarsall.bat
    Vec3b类型数据确定颜色通道
    使用Inno Setup Compiler制作安装软件包
    QT-This application failed to start because it could not find or load the Qt platform plugin "windows"
    m函数与m文件的命名
    当前目录如何打开cmd
    [Machine Learning & Algorithm] 随机森林(Random Forest)-转载
  • 原文地址:https://www.cnblogs.com/bk9527/p/9836723.html
Copyright © 2020-2023  润新知