字典相关方法

  • 创建字典的几种方法
    1.直接创建,冒号隔开: mydict = {‘key’:’value’…}
    2.=连接键值对 :mydict = dict(key1=value1,key2=value2…)
    3.创建一个空的,慢慢赋值:

    mydict={} 
    mydict[key1]=value1 
    mydict[key2]=value2 
    

    4.利用zip压缩两个序列里面的值,组成键值对

    keys = [a,b,c,d] 
    values = [e,f,g,h] 
    mydict = dict(zip(keys,values))
    

    5.可全部初始化为一个值,然后需要的时候修改

    list = [a,b,c,d] 
    mydict = dict.fromkeys(list, "defaults") //?可以是任何你想要的值
    
  • 字典删除元素
    1.方法一 pop(key[,default])

    d = {'a':1,'b':2,'c':3}
    # 删除key值为'a'的元素,并赋值给变量e1
    e1 = d.pop('a')
    print(e1) ==1
    # 如果key不存在,则可以设置返回值
    e2 = d.pop('m','404')
    print(e2) ==404
    # 如果key不存在,不设置返回值就报错
    e3 = d.pop('m') ==〉报错KeyError:'m'
    

    2.方法二 del d[key],可以删除整个字典或者某个键值对

    d = {'a':1,'b':2,'c':3}
    # 删除给定key的元素
    del d['a']
    print(d)
    # 删除不存在的元素
    del d['m']
    

    3.随机删除 popitem() :字典popitem()方法作用是:随机返回并删除字典中的一对键和值。

    d = {'a':1,'b':2,'c':3}
    # 第一次运行
    d.popitem()
    print(d)
    # 第二次运行
    d.popitem()
    print(d)
    # 第三次运行
    d.popitem()
    print(d)
    

    4.一次性删除所有字典元素clear

    d = {'a':1,'b':2,'c':3}
    print(d)
    # 删除所有元素,允许d为{}
    d.clear()
    print(d)
    
  • 设置、修改、新增键值对
    1.索引方式

     d = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
     # 已存在更新
     d['Age'] = 8 
     # 不存在新增
     d['School'] = "DPS School"
     print(d) ==>  {'Name': 'Zara', 'Age': 8, 'Class': 'First', 'School': 'DPS School'}
    

    2.使用updata方法:dict1.update(dict2) 函数把字典dict2的键/值对更新到dict1里,存在的key就更新,不存在的新增

    a = {1: 'apple', 2:'banana', 3: 'pear', 4: 'orange', 6: 'grap'}
      
    >>>a.items()
      
    dict_items([(1,'apple'), (2, 'banana'), (3, 'pear'), (4, 'orange'), (6, 'grap')])
      
    >>>a.update({1:10,2:20,7:100}) # 字典
    >>>a.update(a=1, b=2) # 或者k=v
      
    >>> a
      
    {1: 10, 2: 20,3: 'pear', 4: 'orange', 6: 'grap', 7: 100, "a":1, "b":2}
      
    #
    

    3.dict.setdefault(key, default=None),如果键不存在于字典中,将会添加键并将值设为默认值
    Python 字典 setdefault() 方法和 get() 方法类似,返回指定键的值,如果键不在字典中,将会添加键并将值设置为一个指定值,默认为None。
    get() 和 setdefault() 区别: setdefault() 返回的键如果不在字典中,会添加键(更新字典),而 get() 不会添加键。

    #!/usr/bin/python3
     
    D = {'Name': 'Runoob', 'Age': 7}
     
    print ("Age 键的值为 : %s" %  D.setdefault('Age','25')) # 键存在在字典中则不会设置为指定值
    print ("Sex 键的值为 : %s" %  D.setdefault('Sex', 'NA')) # 键不存在,指定一个值
    print ("School 键的值为 : %s" %  D.setdefault('School')) # 键不存在,不指定值,默认为None
    print ("新字典为:", D)
    结果如下:
    Age 键的值为 : 7
    Sex 键的值为 : NA
    School 键的值为 : None
    新字典为: {'Name': 'Runoob', 'School': None, 'Sex': 'NA', 'Age': 7}
    	
    
  • 两个字典合并

    a={'a':1,'b':2,'c':3}
    b= {'aa':11,'bb':22,'cc':33}
    #方法一
    print(dict(a,**b))
    #方法二 这其实就是在内存中创建两个列表,再创建第三个列表,拷贝完成后,创建新的dict,删除掉前三个列表。这个方法耗费性能,而且对于python3,这个无法成功执行,因为items()返回是个对象。
    print(dict(list(a.items())+list(b.items())))
    #方法三
    c={}
    c.update(a)
    c.update(b)
    print(c)
    #方法四  python 3.5支持,可以存在重复键值,比如说:a={'a':1,'b':2,'c':3,'aa':12}会报错TypeError: print() got multiple values for keyword argument 'aa'
    print(**a,**b)
    
    他们的输出结果都是:
    {'bb': 22, 'cc': 33, 'aa': 11, 'a': 1, 'b': 2, 'c': 3}
    
  • key、value值互换

    1.字典表达式	
    dict_ori = {'A':1, 'B':2, 'C':3}
    dict_new = {value:key for key,value in dict_ori.items()}
    print(dict_new)
    
    2.zip方法
    dict_ori = {'A':1, 'B':2, 'C':3}
    dict_new2= dict(zip(dict_ori.values(), dict_ori.keys()))
    print(dict_new2)
    
    
  • 获取键值
    d.keys()
    d.values()
    d.items()
    d.get(‘key’, ‘不存在key时返回值’)
    d[‘key’]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值