gpt4 book ai didi

python - 克利福德图书馆 : Blade indexing causing key error

转载 作者:行者123 更新时间:2023-12-01 02:23:59 27 4
gpt4 key购买 nike

我对 Python 还很陌生,正在尝试使用我在网上找到的一些代码来完成本科物理项目。该代码包含克利福德库,这导致了我的问题。考虑到代码的语法以及我使用 pip3 安装它的事实,它应该是 Python 3。

运行此代码后:

from __future__ import division
import numpy
from clifford import *
layout, blades = Cl(3,0)
e0, e1, e2 = [blades['e%i'%k] for k in range(3)]
I = (e0^e1^e2)

我得到以下回溯:

Traceback (most recent call last):
File "/Users/melissa/Documents/Fodje.py", line 5, in <module>
e0, e1, e2 = [blades['e%i'%k] for k in range(3)]
File "/Users/melissa/Documents/Fodje.py", line 5, in <listcomp>
e0, e1, e2 = [blades['e%i'%k] for k in range(3)]
KeyError: 'e0'

我问了我的计算机科学教授,他说 blades 中的索引可能存在问题。

有人可以帮我解决这个问题吗?谢谢!

完整代码为hereClifford 文档是 here .

最佳答案

这里的问题是字典对象 blades 包含键 e1、e2、e3 等。 range() 函数从 0 开始,因此 range(3) 本质上返回列表 [0,1,2] - (实际上一个 ittator 不是一个列表,但你不需要担心这一点)。

您收到 key 错误的原因是,python 正在 Blade 中查找 key e0,但它不存在。将 k 替换为 k+1 应该可以工作。

e.g.e1, e2, e3 = [blades['e%i'%(k+1)] for k in range(3)]

一般来说,如果您尝试自行排除故障,关键错误意味着您尝试查找不存在的内容。所以一个好主意可能是打印该对象。因此,为了诊断这里出了什么问题,我只是做了print(blades),结果就很清楚了。我希望这会有所帮助。

完整的代码是:

from __future__ import division
import numpy
from clifford import *
layout, blades = Cl(3,0)
e1, e2, e3 = [blades['e%i'%(k+1)] for k in range(3)]
I = (e1^e2^e3)

关于python - 克利福德图书馆 : Blade indexing causing key error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47598352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com