Python字典实现一键多值的三种方案详解

唐可
唐可
发布时间:2026-10-13 | 4人浏览过
原创

本文详细介绍在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字典中实现一键对应多个值的实例分享完毕,希望能为读者提供有价值的参考,并欢迎大家继续支持本站获取更多技术内容。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表