zoukankan      html  css  js  c++  java
  • Python 字典中一键对应多个值

    #encoding=utf-8  
      
    print '中国'  
      
    #字典的一键多值  
      
    print'方案一 list作为dict的值 值允许重复'    
      
    d1={}  
    key=1  
    value=2  
    d1.setdefault(key,[]).append(value)  
    value=2  
    d1.setdefault(key,[]).append(value)  
      
    print d1  
      
    #获取值  
    print '方案一 获取值'  
    print list(d1[key])  
      
    print '方案一 删除值,会留下一个空列表'  
    d1[key].remove(value)  
    d1[key].remove(value)  
    print d1   
      
    print '方案一 检查是否还有一个值'  
    print d1.get(key,[])  
      
    print '方案二 使用子字典作为dict的值 值不允许重复'  
      
    d1={}  
    key=1  
    keyin=2  
    value=11  
    d1.setdefault(key,{})[keyin]=value  
    keyin=2  
    value=22  
    d1.setdefault(key,{})[keyin]=value  
    keyin=3  
    value=33  
    d1.setdefault(key,{})[keyin]=value  
      
    print d1  
      
    print '方案二 获取值'  
    print list(d1[key])  
      
    print '方案二 删除值,会留下一个空列表'  
    del d1[key][keyin]  
    keyin=2  
    del d1[key][keyin]  
    print d1  
      
    print '方案二 检查是否还有一个值'  
    print d1.get(key,())  
      
    print '方案三 使用set作为dict的值 值不允许重复'  
    d1={}  
    key=1  
    value=2  
    d1.setdefault(key,set()).add(value)  
    value=2  
    d1.setdefault(key,set()).add(value)  
    value=3  
    d1.setdefault(key,set()).add(value)  
      
    print d1  
      
    print '方案三 获取值'  
    print list(d1[key])  
      
    print '方案三 删除值,会留下一个空列表'  
    d1[key].remove(value)  
    value=2  
    d1[key].remove(value)  
    print d1   
      
    print '方案三 检查是否还有一个值'  
    print d1.get(key,())  
    

    打印结果:

    中国
    方案一 list作为dict的值 值允许重复
    {1: [2, 2]}

    获取值
    [2, 2]
    删除值,会留下一个空列表
    {1: []}
    检查是否还有一个值
    []


    方案二 使用子字典作为dict的值 值不允许重复
    {1: {2: 22, 3: 33}}
    获取值
    [2, 3]
    删除值,会留下一个空列表
    {1: {}}
    检查是否还有一个值
    {}


    方案三 使用set作为dict的值 值不允许重复
    {1: set([2, 3])}
    获取值
    [2, 3]
    删除值,会留下一个空列表
    {1: set([])}
    检查是否还有一个值
    set([])


  • 相关阅读:
    BZOJ 1968: [Ahoi2005]COMMON 约数研究
    BZOJ 2463: [中山市选2009]谁能赢呢?
    BZOJ 2462: [BeiJing2011]矩阵模板
    hihoCoder 后缀自动机三·重复旋律6
    hihoCoder #1445 : 后缀自动机二·重复旋律5
    BZOJ 2179: FFT快速傅立叶
    BZOJ 3926: [Zjoi2015]诸神眷顾的幻想乡
    BZOJ 2946: [Poi2000]公共串
    BZOJ 2882: 工艺
    SPOJ LCS2
  • 原文地址:https://www.cnblogs.com/ywl925/p/3810598.html
Copyright © 2011-2022 走看看