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

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书山登峰人

精品不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值