Python-字典的一点记录

字典及基本操作

字典简述

从实际需求出发,当我们想要保存学生的学号,姓名等基本信息的时候。例如:学号:123456789

姓名:张三。这组数据看起来像是两个列表,但是元素之间存在着一定的关联关系。为了保存具有映射关系的数据,Python提供了字典这样的一个数据结构。

字典也是一种常用的数据结构,它相当于保存了两组数据,其中一组数据是关键数据,也就是 key;另一组数据可以通过key来访问,也就是value。简单的来说,就是一组数据是我们定义的变量名字,另一组变量是这些变量名所对应的具体的值,类似于结构体。

如同变量名不能重复一样,字典中的key,也不可以重复。

也和变量名一旦申请创建后不能改变一样,字典中的key除了可以用整形,字符串等等基本类型外,也可以使用元组这种不可变类型。列表是可变类型,所以不能够作为字典的key

字典操作

  • 创建:

    • 可以使用花括号来创建;
    • 可以使用函数 dict() 。另外 dict是一种类型,即Python中的字典类型。
    dict1={"id":123456789,"name":张三}
    
    #创建 元组作为 key value
    value=[("key1",1),("key2",2),("key3",3)]
    #创建 列表双元素作为 key value
    value=[["key1",1],["key2",2],["key3",3]]
    dict1=dict(value)
    
    #创建空的字典
    dict2=dict()
    
    #直接指定对应关系创建字典
    dict3=dict(k1=101,k2=303,k3=404)
    #注:此时key不允许使用表达式 此时key不需要使用引号引起来。
    
  • 访问

    对于字典来说,所有的操作都是基于key进行。例如访问value、添加数值对、删除数值对、修改数值对、判定数值对等等

    #访问value
    print(dict3['k1'])
    #添加
    dict3['k4']=1
    #删除
    del dict3['k1']
    #修改
    dict3['k2']=89
    #判定存在
    print("k1" in dict3)
    print("k2" not in dict3)
    print('k3' in dict3)
    
    #变量访问
    val=k1
    dict3[val]
    
  • 添加

  • 方法

    ['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

    clear() 清空数值对,执行后原字典变为空字典

    get() 通过key获取value,当访问不存在的key时,返回NONE。

    update() 更新数值对,将原有的value覆盖。若key不存在,则会新增一个数值对。

    items() 获取字典中所有的数值对,返回dict_items对象

    keys() 获取字典中所有的key,返回dict_keys对象

    values() 获取字典中所有的value,返回dict_values对象

    最好不要直接操作这三个对象,我们可以通过list()函数转换成列表进行操作

    pop() 获取指定数值对,并且删除。

    popitem() 获取底层存储的最后一个数值对

    setdefault() 根据key获取value,当key不存在时赋予初始值

    dict1.clear()
    dict1.get("key1")
    dict1.update("key1":2323)
    
    idems_dict1=dict1.items()
    list(idems_dict1)[1]
    #keys() values() 类似
    
    dict1.pop("key1")
    
    dict1.setdefault("key9")
    
  • 函数

    cmp(dict1,dict2) 比较

    len(dict) 计算元素个数

    str() 输出字典可打印的字符串表

    type(dict) 数据类型

  • 文件读取txt

    • json

    利用dumps和loads进行字典与字符串的转化

    json.dumps(dict1)
    json.loads(dict1)
    
    • str
    str(dict1)#转化字符串
    eval(dict1)#将转化的字符串去引号
    
原文地址:https://www.cnblogs.com/taoyao-ccdr/p/14828570.html