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

    转自:http://blog.csdn.net/houyj1986/article/details/22624981

    #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([])
    

      

  • 相关阅读:
    MongoDB的基本操作
    Python 进阶 之 协程
    sublime text3 3143 注册码
    git add 文档
    Corosync 配置描述
    Centos 7 设置 DNS
    2017百度春招<度度熊买帽子的问题>
    leetcode 160. Intersection of Two Linked Lists
    leetcode 155. Min Stack
    leetcode 141 142. Linked List Cycle
  • 原文地址:https://www.cnblogs.com/rrttp/p/8493264.html
Copyright © 2011-2022 走看看