克利福德图书馆:Blade 索引导致键错误
Clifford library: Blade indexing causing key error
我是 Python 的新手,我正在尝试将我在网上找到的一些代码用于本科物理项目。此代码包含导致我出现问题的 clifford 库。鉴于代码的语法以及我使用 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'
我问过我的 CS 教授,他说 blades
中的索引可能有问题。
谁能帮我解决这个问题?谢谢!
这里的问题是字典 object blades
包含键 e1、e2、e3 等等。 range()
函数从 0 开始,所以 range(3)
本质上 returns 列表 [0,1,2]
-(它实际上是一个 ittarator 而不是列表,但你不必担心).
您收到密钥错误的原因是,python 正在刀片中查找密钥 e0,但它不存在。将 k 替换为 k+1,它应该可以工作。
e.g.e1, e2, e3 = [blades['e%i'%(k+1)] for k in range(3)]
一般来说,如果您尝试自行解决问题,关键错误意味着您试图查找不存在的内容。所以一个好主意可能是打印 object。所以为了诊断这里出了什么问题,我只是做了 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 的新手,我正在尝试将我在网上找到的一些代码用于本科物理项目。此代码包含导致我出现问题的 clifford 库。鉴于代码的语法以及我使用 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'
我问过我的 CS 教授,他说 blades
中的索引可能有问题。
谁能帮我解决这个问题?谢谢!
这里的问题是字典 object blades
包含键 e1、e2、e3 等等。 range()
函数从 0 开始,所以 range(3)
本质上 returns 列表 [0,1,2]
-(它实际上是一个 ittarator 而不是列表,但你不必担心).
您收到密钥错误的原因是,python 正在刀片中查找密钥 e0,但它不存在。将 k 替换为 k+1,它应该可以工作。
e.g.e1, e2, e3 = [blades['e%i'%(k+1)] for k in range(3)]
一般来说,如果您尝试自行解决问题,关键错误意味着您试图查找不存在的内容。所以一个好主意可能是打印 object。所以为了诊断这里出了什么问题,我只是做了 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)