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

    #字典的一键多值

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

  • 相关阅读:
    软件测试
    数据库中查询json 样式的值的sql语句
    xml转json的方法
    将数据保存本地文件
    Spring 配置 web.xml (防止spring 内存溢出)
    解决maven工程 子工程中的一些配置读取进来的问题
    quartz 的简单使用
    mock 测试 MVC
    sun 证书问题解决
    将文本转换为json的工具类
  • 原文地址:https://www.cnblogs.com/xjklmycw/p/8505604.html
Copyright © 2011-2022 走看看