• python中的字典


    在python中,字典是可变数据类型。

    可以通过下面案例证明:

    >>> dic = {'name': 'chenjun', 'age': 22}
    >>> id(dic)
    1922056241872
    >>> dic['gender'] = 'male'
    >>> dic
    {'name': 'chenjun', 'age': 22, 'gender': 'male'}
    >>> id(dic)
    1922056241872

    可见,字典增加一对键值,内存地址没有发生变化,说明字典是可变数据类型。

    字典常用操作如下:

    1.增删改查:>>> dic = {'name': 'chenjun'}#增加键值

    >>> dic['age'] = 22
    >>> dic
    {'name': 'chenjun', 'age': 22}
    #批量增加键值
    >>> dic.update({'gender': 'male', 'edu': 'high'}) >>> dic {'name': 'chenjun', 'age': 22, 'gender': 'male', 'edu': 'high'}
    #删除指定键并返回其对应值,若键不存该可给定默认值,否则报错
    >>> dic.pop('edu') 'high' >>> dic {'name': 'chenjun', 'age': 22, 'gender': 'male'}
    #删除一对键值
    >>> dic.popitem() ('gender', 'male') >>> dic {'name': 'chenjun', 'age': 22}
    #改字典键值
    >>> dic['age'] = 23 >>> dic {'name': 'chenjun', 'age': 23}
    #查询键对应值,没有该键则报错
    >>> dic['name']
    'chenjun'
    #查询键对应值,没有返回None
    >>> dic.get('name')
    'chenjun'
    #查询字典所有键或所有值或所有键值一起显示,返回对象形式,需要用list()函数显示出来
    >>> dic.keys() dict_keys(['name', 'age']) >>> list(dic.keys()) ['name', 'age'] >>> dic.values() dict_values(['chenjun', 23]) >>> list(dic.values()) ['chenjun', 23] >>> dic.items() dict_items([('name', 'chenjun'), ('age', 23)]) >>> list(dic.items()) [('name', 'chenjun'), ('age', 23)]
    #清空字典
    >>> dic.clear()
    >>> dic
    {}

    2.设置字典默认值

    >>> dic = {'name': 'chenjun', 'age': 23}
    若原来不存在执行添加操作
    >>> dic.setdefault('male', 'man') 'man' >>> dic {'name': 'chenjun', 'age': 23, 'male': 'man'}
    若原来已存在则不改变
    >>> dic.setdefault('age', 22) 23 >>> dic {'name': 'chenjun', 'age': 23, 'male': 'man'}

    3.dict.fromkeys()

    >>> userinfo = dict.fromkeys(['name', 'age', 'gender', 'edu'], None)
    >>> userinfo
    {'name': None, 'age': None, 'gender': None, 'edu': None}

    个人感觉这个功能是为了方便创建字典,在事先知道有哪些属性而不确定取值时可以这样先创建一个字典数据结构。

  • 相关阅读:
    2018软件工程第七次作业(团队二)
    2018软件工程第六次作业(团队一)
    2018软件工程第五次作业(结对二)
    2018软件工程第四次作业(结对一)
    2018软件工程第三次作业(个人三)
    2018软件工程第二次作业(个人二)
    2018软件工程第一次作业(个人一)
    Serializable与transient的联合使用:动态管理成员属性——《Thinking in Java》随笔033
    transient关键字的应用——《Thinking in Java》随笔032
    Serializable:用于保存及还原对象——《Thinking in Java》随笔031
  • 原文地址:https://www.cnblogs.com/tarantino/p/10219649.html
Copyright © 2020-2023  润新知