python - 如何将字典值转换为字典集
问题描述
我正在尝试解决一些图形问题,但我被卡住了一半。我有一个 python 集合字典,但我想将原始字典值(它们是集合)转换成一个字典,这样集合中的每个值都成为一个键,它的另一个值是 1。我认为这就是称为嵌套字典 - 我不确定。
我遍历了dict.values()
,分配给变量 xxx,并使用了dict.fromkeys(xxx, 1)
代码并且它工作了,但我无法将结果整合回原始字典。
下面是一个字典的例子:
d = {'35': {'1', '37', '36', '71'}, '37': {'1', '35'}}
我希望输出看起来像:
d = {35: {1 : 1, 37 : 1, 36 : 1, 71 : 1}, 37: {1 : 1, 35 : 1}}
如果您注意到,原来的字典值已经变成了它们自己的字典,并且撇号 ('') 已关闭。
有人可以帮助我,或者给我指点。谢谢
解决方案
你只需要一点列表理解:
def convert(input):
return {key: {val: 1 for val in vals} for key, vals in input.items()}
print(convert({'35': {'1', '37', '36', '71'}, '37': {'1', '35'}}))
# {'35': {'1': 1, '37': 1, '36': 1, '71': 1}, '37': {'1': 1, '35': 1}}
推荐阅读
- rust - 为 gstreamer crate 0.14 编写 rust/gstreamer 插件需要哪些依赖项?
- python-3.x - 在时间序列数据(csv 文件)中找到局部最小值
- dll - 在 Release 中构建 VSIX 项目不再创建 VSIX 文件,只是一个 DLL
- algorithm - 为什么我们有多项式算法可以将 SAT 减少到 3 SAT,但没有将 3 SAT 减少到 2 SAT?
- python - 使用pickle存储OAuth1Session的Flask会话
- c++ - 最大连续和
- javascript - 一段时间后 JQuery/CSS 动画中断
- perl - 在 Perl 中从 base64 创建 PDF
- javascript - 修复 Node Js 中的 Facebook JSON 编码
- azure-active-directory - Azure 前门服务阻止 Azure AD SSO