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

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

本文详细介绍在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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。