• Python学习笔记3:字典方法


    Python字典方法

    字典初体验

    创建空字典

    dict2 = {}
    
    >>> type(dict2)
    
    <class 'dict'>
    

    创建字典

    >>> dict1 = {1:'one',2:'two',3:'three'}
    
    >>> dict1
    
    {1: 'one', 2: 'two', 3: 'three'}
    

    添加、修改和删除字典项

    >>> dict2
    {}
    >>> dict2[1] = 'one'
    >>> dict2[2] = 'two'
    >>> dict2
    {1: 'one', 2: 'two'}
    >>> dict2[2] = 'three'
    >>> dict2
    {1: 'one', 2: 'three'}
    >>> del dict2[1]
    >>> dict2
    {2: 'three'}
    

    字典方法

    adict.keys() 返回一个包含字典所有key的列表,这个列表不能直接引用,必须要经过list()转化

    >>> dict3 = {1:'one',2:'Two',3:'three'}
    >>> dict3.keys()
    dict_keys([1, 2, 3])
    >>> list(dict3.keys())
    [1, 2, 3]
    

    adict.values() 返回一个包含字典所有value的列表,这个列表不能直接引用,必须要经过list()转化

    adict.items() 返回一个包含所有(键,值)元祖的列表;

    >>> dict3.items()
    dict_items([(1, 'one'), (2, 'Two'), (3, 'three')])
    

    adict.clear() 删除字典中的所有选项或元素

    >>> dict3
    {1: 'one', 2: 'Two', 3: 'three'}
    >>> dict3.clear()
    >>> dict3
    {}
    

    adict.copy() 返回一个字典的副本,如果原字典改变,副本不会改变;

    >>> dict = {1:[2,5],2:'two'}
    >>> dict1 = dict.copy()
    >>> dict1
    {1: [2, 5], 2: 'two'}
    >>> dict[1] = [2,3,5]
    >>> dict
    {1: [2, 3, 5], 2: 'two'}
    >>> dict1
    {1: [2, 5], 2: 'two'}
    

    adict.fromkeys(seq, val=None) 创建并返回一个新字典,seq为一个序列,序列中的元素做该字典的键,val做该字典中所有键对应的初始值(默认为None),其中所有的key都对应同样的一个val

    >>> dict1 = {}
    >>> dict2 = dict1.fromkeys([1,2,3],'one')
    >>> dict2
    {1: 'one', 2: 'one', 3: 'one'}
    >>> dict1
    {}
    >>> dict1 = dict2.fromkeys(['a','b','c'],'green')
    >>> dict1
    {'a': 'green', 'b': 'green', 'c': 'green'}
    >>> dict2
    {1: 'one', 2: 'one', 3: 'one'}
    

    adict.get(key, default = None) 返回字典中key的值,如果该key不存在,则返回default的值,default的值默认为None

    >>> dict2
    {1: 'one', 2: 'one', 3: 'one'}
    >>> dict2.get(1)
    'one'
    >>> dict2.get(4)
    >>> dict2.get(4,'nba')
    'nba'
    

    adict.pop(key[,default]) 删除并返回key对应value的值,如果key不存在,返回设置的default的值,如果没有设置default,返回KeyError

    >>> dict2
    {1: 'one', 2: 'one', 3: 'one'}
    >>> dict2.pop(1)
    'one'
    >>> dict2
    {2: 'one', 3: 'one'}
    >>> dict2.pop(4,'abc')
    'abc'
    >>> dict2
    {2: 'one', 3: 'one'}
    >>> dict2.pop(4)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 4
    

    adict.setdefault(key, default=None) 返回key对应的value,如果key不存在,返回default的值等同于adict.get()

    adict.update(bdict) adict和bdict同为字典,使用bdict更新adict,两个字典adict里面的键值对保持不变,将bdict存在但adict里面没有的键值对添加到adict里面

    >>> dict1
    {1: 'one', 2: 'two', 3: 'three'}
    >>> dict2
    {2: 'two', 3: 'abc', 4: 'four'}
    >>> dict1.update(dict2)
    >>> dict1
    {1: 'one', 2: 'two', 3: 'abc', 4: 'four'}
    >>> dict2
    {2: 'two', 3: 'abc', 4: 'four'}
    

    如果如果相同的key,但value不相同,则dict1中的value变为dict2中的value

  • 相关阅读:
    Matching「CEOI2011」
    中位数之中位数「NOIP多校联考 2019」
    积木「CSP-S全国排位赛第一场」
    序列「CSP-S全国排位赛第一场」
    GT考试「HNOI2008」
    动物园「NOI2014」
    Radio Transmission「BOI2009」
    小Z的袜子「国家集训队」
    BZOJ3624: [Apio2008]免费道路
    BZOJ1190: [HNOI2007]梦幻岛宝珠
  • 原文地址:https://www.cnblogs.com/rendawei/p/6978071.html
Copyright © 2020-2023  润新知