zoukankan      html  css  js  c++  java
  • 字典

    字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含:“键 对象”和“值对象”。可以通过“键对象”实现快速获取、删除、更新对应的“值对象”。 列表中我们通过“下标数字”找到对应的对象。字典中通过“键对象”找到对应的“值 对象”。“键”是任意的不可变数据,比如:整数、浮点数、字符串、元组。但是:列表、 字典、集合这些可变对象,不能作为“键”。并且“键”不可重复。 “值”可以是任意的数据,并且可重复。
    一个典型的字典的定义方式:
    a = {‘name’:‘lxy’,‘age’:18,‘job’:‘student’}

    字典的创建

    1. 我们可以通过{}、dict()来创建字典对象。

    >>> a = {'name':'lxy','age':18,'job':'student'} 
    >>> b = dict('name':'lxy','age':18,'job':'student') 
    >>> a = dict([('name':'lxy'),("age",18)]) 
    >>> c = {} #空的字典对象 
    >>> d = dict() #空的字典对象

    2. 通过 zip()创建字典对象

    >>> k = ['name','age','job'] 
    >>> v = ['lxy',18,'student'] 
    >>> d = dict(zip(k,v)) 
    >>> d {'name': 'lxy', 'age': 18, 'job': 'student'}

    3. 通过 fromkeys 创建值为空的字典

    >>> a = dict.fromkeys(['name','age','job']) 
    >>> a {'name': None, 'age': None, 'job': None}

    字典元素的访问

    为了测试各种访问方法,我们这里设定一个字典对象:
    a = {‘name’:‘lxy’,‘age’:18,‘job’:‘student’}

    1. 通过 [键] 获得“值”。若键不存在,则抛出异常。
    >>> a = {'name':'lxy','age':18,'job':'student'} 
    >>> a['name'] 
    'lxy' 
    >>> a['age'] 
    18
    >>> a['sex'] 
    >Traceback (most recent call last): File "<pyshell#374>", line 1, in <module>
     a['sex'] KeyError: 'sex' 
    1. 通过 get()方法获得“值”。推荐使用。优点是:指定键不存在,返回 None;也可以设 定指定键不存在时默认返回的对象。推荐使用 get()获取“值对象”。
     >>> a.get('name') 
    'lxy' 
    >>> a.get('sex')
    >>> a.get('sex','一个男人') 
    '一个男人' 
    1. 列出所有的键值对
    >>> a.items() 
    >dict_items([('name', 'lxy'), ('age', 18), ('job', 'student')]) 
    1. 列出所有的键,列出所有的值
    >>> a.keys() 
    dict_keys(['name', 'age', 'job']) 
    >>> a.values() 
    dict_values(['lxy', 18, 'student'])
    1. len() 键值对的个数
    2. 检测一个“键”是否在字典中
    >>> a = {"name":"lxy","age":18} 
    >>> "name" in a 
    True 

    字典元素添加、修改、删除

    1. 给字典新增“键值对”。如果“键”已经存在,则覆盖旧的键值对;如果“键”不存在, 则新增“键值对”。
    2. 使用 update()将新字典中所有键值对全部添加到旧字典对象上。如果 key 有重复,则直 接覆盖。
    3. 字典中元素的删除,可以使用 del()方法;或者 clear()删除所有键值对;pop()删除指定 键值对,并返回对应的“值对象”;
    4. popitem() :随机删除和返回该键值对。字典是“无序可变序列”,因此没有第一个元 素、最后一个元素的概念;popitem 弹出随机的项,因为字典并没有"最后的元素"或者其 他有关顺序的概念。若想一个接一个地移除并处理项,这个方法就非常有效(因为不用首先获取键的列表)。

    序列解包

    序列解包可以用于元组、列表、字典。序列解包可以让我们方便的对多个变量赋值。
    序列解包用于字典时,默认是对“键”进行操作; 如果需要对键值对操作,则需要使用 items();如果需要对“值”进行操作,则需要使用 values();

    别废话,拿你代码给我看。
  • 相关阅读:
    insert sort O(n2)
    JJ数据
    quick sort O(logn)
    TSQL语句之case when then 多条件判断
    C#使用LitJson解析JSON
    终止线程 Response.End 在Asp.net 里面的正确使用
    TSQL操作MSSQL2008 SQL备份与还原数据库
    C#/.NET 条件合并两个DataTable
    JavaScript学习之一JavaScript浏览器对象模型详解window对象(上)
    跟老邓一起学Windows Phone7开发(一)第一个程序
  • 原文地址:https://www.cnblogs.com/lvxueyang/p/13707525.html
Copyright © 2011-2022 走看看