• 3


    字典和列表的区别 是无序的 ,字典的取值是通过Key值来达到的  

    >>> a = {'111':[1,2,3,4]}
    >>> a
    {'111': [1, 2, 3, 4]}
    >>> for i in a:
    print i       


    111                   ###取出的值是键值 ‘111’


    >>> a['111']
    [1, 2, 3, 4]
    >>> a['111'][0]           
    1
    >>> a['111'][2]
    3
    >>>                   


    >>> a['111'][2] = 'ggg'
    >>> a
    {'111': [1, 2, 'ggg', 4]}
    >>>                   ### 通过键值 下标来替换

    >>> a['111'] = 'hehe'
    >>> a
    {'111': 'hehe'}
    >>>   ### 一个键值对应 :后面的值 

    >>> a['222'] = 'hahahah'
    >>> a
    {'111': 'hehe', '222': 'hahahah'}            ###当一个键值 不存在的时候 默认字典会增加其值  键值存在内容就会替换
    >>> a['333'] = 'gagaga'
    >>> a
    {'111': 'hehe', '222': 'hahahah', '333': 'gagaga'}
    >>> a
    {'111': 'hehe', '222': 'hahahah', '333': 'gagaga'}
    >>> print a
    {'111': 'hehe', '222': 'hahahah', '333': 'gagaga'}
    >>> for i in a:
    print i


    111
    222
    333
    >>>


    删除 

    >>> del a['222']
    >>> a
    {'111': 'hehe', '333': 'gagaga'}
    >>>        ### del 是python 内置的机构 通用型

    >>> a.pop('111')
    'hehe'
    >>> a
    {'333': 'gagaga'}
    >>>                        ###pop()  里面输入需要删除的键值 不可不填写 字典本身是无序的 popitem()不填写键值就随意删了,不建议用


    查找 

    上面查找通过键值来 查询了  但是当键值不存在的时候 直接查找会报错。。

    除非你很肯定你要找的键值就在字典里。

    试探性搜索 用get()

    >>> a
    {'333': 'gagaga'}
    >>> print a.get('555')
    None
    >>>   ### 当试探搜索没有的情况下会返回None 而不是报错毁坏程序

    >>> a.has_key('555')
    False                         ###在python 2.x里是有这个方法来检测键值是否存在  3.X里没有了
    >>> '555' in a
    False
    >>>                        ### 3.x版本 可以用这种方式 结果是一样的


    打印字典里的所有的值  ,,,键

    >>> a
    {'555': 'hahhaa', '9999': 'nnnnnn', '333': 'gagaga'}
    >>>
    >>>
    >>> print a.values()
    ['hahhaa', 'nnnnnn', 'gagaga']
    >>>
    >>>                     values()  

    >>> a.keys()
    ['555', '9999', '333']
    >>>                     keys()


    增加创建 

     当需要创建一个 字典时候  创建的键 已经存在, 那么不会被覆盖 而是增加

    Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值

    setdefault()


    update()

    >>> a
    {'555': 'hahhaa', '9999': 'nnnnnn', '333': 'gagaga'}
    >>>
    >>> b = {'555':'ggg',1:2,8:88}
    >>> a.update(b)
    >>> print a
    {'9999': 'nnnnnn', 1: 2, 8: 88, '555': 'ggg', '333': 'gagaga'}
    >>>                          ## update(其他需要融合的字典)     当字典融合的话 键值相同的覆盖 新的键值 就增加


     坑   。。。。。。。。。。。。。。。。。。。。。。

    >>> print a.items()
    [('9999', 'nnnnnn'), (1, 2), (8, 88), ('555', 'ggg'), ('333', 'gagaga')]
    >>>                    ###items()  直接把字典变成列表


    >>> d = dict.fromkeys([1,2,3],[11,{'aa':'bb'},'c'])
    >>> d
    {1: [11, {'aa': 'bb'}, 'c'], 2: [11, {'aa': 'bb'}, 'c'], 3: [11, {'aa': 'bb'}, 'c']}
    >>>                              ###fromkeys(['创建字典的键'],[‘创建字典的值’])  

    >>> d[2][1]['aa'] = 'kkkkk'    ###多层嵌套字典中  是字典就按字典取值 是列表就按列表取值 各取所需
    >>> d
    {1: [11, {'aa': 'kkkkk'}, 'c'], 2: [11, {'aa': 'kkkkk'}, 'c'], 3: [11, {'aa': 'kkkkk'}, 'c']}
    >>>                 ###当修改深层次的值 时候 这种就需要注意  所有值都会改变

      


     最好的 字典循环

    >>> a
    {'9999': 'nnnnnn', 1: 2, 8: 88, '555': 'ggg', '333': 'gagaga'}
    >>>
    >>>
    >>>
    >>>
    >>> for i in a:
    print i,a[i]


    9999 nnnnnn
    1 2
    8 88
    555 ggg
    333 gagaga
    >>>                       

    以下知道就行不建议使用-----------------------------------------------------------------------------------------

    >>> for d,j in a.items():
    print d,j


    9999 nnnnnn
    1 2
    8 88
    555 ggg
    333 gagaga
    >>>   ###  这种首先  让字典变成列表 然后通过列表去索引 但字典容量 上千万 那么转换过程就非常可怕了。。

  • 相关阅读:
    分治策略
    uva 11424
    lightoj 1214
    lightoj 1282 && uva 11029
    lightoj 1341
    zoj 2369 Two Cylinders
    几种素数筛法
    lightoj 1245
    hdoj 1299 Diophantus of Alexandria
    求前n项正整数的倒数和
  • 原文地址:https://www.cnblogs.com/th-lyc/p/8529585.html
Copyright © 2020-2023  润新知