Python字典实现一键多值的三种方案详解
本文详细介绍在Python中实现字典一键对应多个值的三种方法:使用列表(List)允许重复值、使用子字典(Sub-dict)键不重复、以及使用集合(Set)元素不重复。通过代码示例展示各方案的创建、获取、删除及检查操作,帮助开发者根据实际需求选择合适的数据结构。
具体实现方式如下所示:
#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)作为字典的值,此方式允许值存在重复。
初始状态为 {1: [2, 2]}。 获取值的操作返回 [2, 2]。 执行删除值操作后,原列表中的元素被移除,但键对应的值变为空列表,即 {1: []}。 检查是否仍有剩余值时,结果为空列表 []。
方案二:采用子字典(Sub-dict)作为字典的值,此方式下值不允许重复。
初始状态为 {1: {2: 22, 3: 33}}。 获取值时,返回子字典的键列表 [2, 3]。 执行删除值操作后,子字典变为空,即 {1: {}}。 检查是否仍有剩余值时,结果为空字典 {}。
方案三:采用集合(Set)作为字典的值,此方式下值不允许重复。
初始状态为 {1: set([2, 3])}。 获取值时,返回集合转换后的列表 [2, 3]。 执行删除值操作后,集合变为空集,即 {1: set([])}。 检查是否仍有剩余值时,结果为空集合 set([])。
以上关于在Python字典中实现一键对应多个值的实例分享完毕,希望能为读者提供有价值的参考,并欢迎大家继续支持本站获取更多技术内容。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













