12.2-字典概念

作者: BeautifulSoulpy | 来源:发表于2019-08-29 09:59 被阅读0次

    字典在Python中的地位排在第一,非常非常重要;Python中许多数据结构、计算机编程 都是基于字典;

    图片.png

    1.字典dict

    哈希表的算法是获取键 key ( set 相当于key键 ),对键执行一个叫做哈希函数的操作,并根据计算的结果,选择在数据结构的某个地址中来存储你的值。

    字典是Python中一个键值映射的数据结构;

    字典是非线性结构中最重要的一种;set 可以看成字典的特例:set都是key;

    2. 创建字典(可变的,无序的,key不重复的)
    # 创建字典 (多种方法)
    # 第一种方法
    dict1 = {'name':'linda','age':13}
    
    # 第二种方法:利用二元结构
    dict2 = dict(['name','linda'],['age',13])
    
    d=dict(([1,'a'],[2,'b']))   # 列表形式
    e=dict(a=1,b=2,c=3,d='str')   # =对应关系;
    
    #第三种方法,将一个可迭代对象的值作为字典的每一个键,赋值为1
    dict3 = {}.fromkeys(('x','y','z'),1)
    dict2 = {}.fromkeys(('x','y','z'))
    
    # 第四种方法:使用字典构建另一个字典;
    dict(mapping,**kwary)
    
    总结:
    1. dict(iterable,**kwarg)必须是一个二元结构(键值对结构) ;
    d={'a':1,'b':2}
    
    d=dict(([1,'a'],[2,'b']))
    e=dict(a=1,b=2,c=3,d='str')  
    
    e=dict.fromkeys(range(5),100)   # 取值都是一样;
    e
    ----------------------------------------------
    {0: 100, 1: 100, 2: 100, 3: 100, 4: 100}
    
    
    3.访问字典
    key:可以hash就可以作为key;  数字、字符串都可以;
    # 返回一个键的列表
    dict1.keys()      |    ['name','age']
    
    # 返回一个值的列表
    dict1.values()     |   ['linda',13]
    
    # 返回一个包含(键,值)元组的列表
    dict1.items()     |    [('name','linda'),('age':13)]
    
    # 返回键name对应的值
    dict1['name']     |    'linda'
    
    # 得到键的值,若键不存在,则返回默认值
    dict1.get('name',None)     |    'linda'
    
    # 字典中没有sex,返回默认值man
    dict1.get('sex','man')     |    'man'
    dict.iter()  #方法 iteritems(), iterkeys(), itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。
    
    d.setdefault('b', 1000)     #设置缺省值;
    
    4.字典 增、删、改
    # 修改键name的值
    dict1['name'] = 'lihua' 
    
    # 如果字典中 key 键存在,删除并返回 dict[key],如果 key 键不存在,且没有给出 default 的值,引发KeyError 异常
    dict1.pop(name,'unknown')    |    'linda' 
    
    # 删除键name这条记录
    dict1.remove('name') 
    
    # 如果字典中不存在 key 键,由 dict[key]=default 为它赋值,若存在则不改变它的值
    dict1.setdefault('name',default='unknown')  
    
    # 将字典 dict2 的键-值对添加到字典 dict
    dict.update(dict2)  
    
    d = dict.fromkeys(range(10),0)
    d.update([(1,2000)])    #  d.update([(1,2000)]) 
    d
    -----------------------------------------------------------
    {0: 0, 1: 2000, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}
    
    d.update({'b':3000, 'c':7879})
    d
    ------------------------------------------------------------------
    {0: 0,
     1: 2000,
     2: 0,
     3: 0,
     4: 0,
     5: 0,
     6: 0,
     7: 0,
     8: 0,
     9: 0,
     'b': 3000,
     'c': 7879}
    
    # 删除字典中所有元素
    dict.clear()  
    
    # 删除字典
    del dict1 
    

    相关文章

      网友评论

        本文标题:12.2-字典概念

        本文链接:https://www.haomeiwen.com/subject/mymbectx.html