python - 值是可选的 Python 字典
问题描述
我正在寻找介于集合和字典之间的东西。一组唯一键,其中一些键具有值,但不是全部。
我可以使用值 None 表示没有值的字典,但是当大多数键没有值时,它会变得冗长:{1: 'one', 2: None, 3: None}
。我希望它只是{1: 'one', 2, 3}
,但这是一个语法错误。
Python中有这样的东西吗?defaultdict
在这里没有帮助。当您从字典中读取时,这会产生默认值,而不是在添加键时。
如果您想要一个动机,我正在尝试存储一组传递给编译器的 C #defines,它们-DSOMETHING
没有值或-DSOMETHING=FOO
有值。
解决方案
为什么你需要字典中的键?你可以像这样实现字典:
d = {1: 'one', 2: 'present'}
然后当你使用字典时,你可以这样做:
one = d.get(1, None) # 'one'
two = d.get(2, None) # 'two'
three = d.get(3, None) # None
也许我可以添加,您可以在一组中拥有完整的键列表:
keys = set([1,2,3])
并在查找中使用它:
for key in keys:
value = d.get(key, None)
if value is not None:
...
else:
...
这是另一种选择。使用元组:
data = [(1, 'one'), (2, 'present'), (3,)]
for item in data:
key = item[0]
if len(item)>1:
value = item[1]
else:
value = None
推荐阅读
- android - 从文件中读取 Fastfile 的密码 - Android
- pdf - 使用 poppler 生成的 XML 中的坐标来构建电子邮件模板
- java - 如何使用休眠创建订单实体?
- python - Cookiecutter 将一个文件夹复制到多个不同名称的文件夹
- php - 我在 PHP 文件中找到的这种语法“{!!”是什么?
- latex - 超链接未在 Overleaf 中给出边框
- django - 多个表格的 Django(测验/考试应用程序)表格。需要帮助为相互依赖的模型创建表单
- python - 使用python套接字未发生循环
- node.js - 如何在 MongoDB 中使用户名和电子邮件不区分大小写
- port - Netgate pfSense 端口 80 和 443 转发