首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >键存在时的

键存在时的
EN

Stack Overflow用户
提问于 2015-10-17 00:42:04
回答 1查看 1.4K关注 0票数 0

我对蟒蛇很陌生,我正在用它做作业。

我在Debian 8上使用PyEDA和Python3。

我创建了一个名为:

代码语言:javascript
复制
R = exprvars('r', n, n)

对于n = 4,这给了我:

代码语言:javascript
复制
farray([[r[0,0], r[0,1], r[0,2], r[0,3]],
    [r[1,0], r[1,1], r[1,2], r[1,3]],
    [r[2,0], r[2,1], r[2,2], r[2,3]],
    [r[3,0], r[3,1], r[3,2], r[3,3]]])

然后,在一些逻辑之后,使用以下方法创建一个CNF布尔函数f和一个BDD:

代码语言:javascript
复制
f = expr2bdd(f)

然后,这个短语:

代码语言:javascript
复制
U = f.satisfy_one()

给我:

代码语言:javascript
复制
{r[2,1]: 0, r[3,2]: 1, r[1,1]: 1, r[0,2]: 0, r[0,3]: 1, r[2,2]: 0, r[2,3]: 0, r[3,3]: 0, r[3,1]: 0, r[1,2]: 0, r[0,1]: 0, r[1,0]: 0, r[2,0]: 1, r[3,0]: 0, r[0,0]: 0, r[1,3]: 0}

但我不明白的是:我期待着

代码语言:javascript
复制
U[R[0,0]]

返回0,但相反,它给了我

代码语言:javascript
复制
KeyError: r[0,0]

有什么问题吗?R[0,0]给了我r[0,0],字典把它作为密钥。

编辑

当我说R[0,0]给我r[0,0]时,这意味着我使用pdb打印它,在U = f.satisfy_one()后面放置一个断点

代码语言:javascript
复制
(Pdb) p R[0,0]
r[0,0]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-17 01:12:47

这需要更多的细节。

你怎么说,R[0,0]给了我r[0,0]?你打印出来了吗?

试着验证你是否在寻找相同的

代码语言:javascript
复制
assert list(U.keys())[0] == R[2,1]

看看这些值

代码语言:javascript
复制
print(list(type(U.keys())[0])
print(type(R[2,1])

看看它们是否匹配,只有它们匹配,你才能收集它。

另外,检查U本身是否有任何方法为您执行查询。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33181475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档