python3 词典搜索不到对应的键(这个键事实上是存在的)?

我用sympy的solve解了个二元方程组,type()显示解出来结果是一个词典,但是在调用这个词典时却显示找不到键,不知道如何解决。这个键实际上是存在的,而且我多次确认... 我用sympy的solve解了个二元方程组,type()显示解出来结果是一个词典,但是在调用这个词典时却显示找不到键,不知道如何解决。这个键实际上是存在的,而且我多次确认我输入的键也没错,但就是搜索不到。但我把print写出的结果复制下来创建了新的词典却可以搜索到这个键。 展开
 我来答
百度网友023b1c3
科技发烧友

2021-12-15 · 智能家居/数码/手机/智能家电产品都懂点
知道小有建树答主
回答量:1086
采纳率:84%
帮助的人:284万
展开全部

题主你好,

你使用L['y']从L字典中取值时,此时[]里的'y'它是字符串类型.

而你L字典里面的键实际上是Symbol类型.

看个例子理解一下:

我把题主的代码敲下来看,得到了字典类型的变量L,然后利用L.keys()获得字典的键,将其类型打印出来后,结果如图:

我们再看一个普通的字典:

也就是说L确实是一个字典,只不过当你输出L的值,{'x': 3, 'y': 3}, 时误以为字典中键的类型是字符串,从表面上看也确实挺迷惑人的.

-----

既然知道了是因为键的类型不对,那么解决办法也有了,就是构造一下Symbol类型的变量作为L的键即可:

=====

希望可以帮到题主, 欢迎追问.

追问
谢谢,问题已解决,初学Python没多久,第一次接触sympy,掉进坑里了。
追答
客气
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式