0

所以我必须在 python 中创建一个函数,将两个多维点加在一起并输出新坐标。

我从

class point:
  def__int__(self,dim,data):
    self.dim=dim
    self.data=[]
    for i in range(dim):
      self.data.append(float(data[i]))

这部分在分配代码中给出,不能更改。所需的函数必须这样输入 p1.add(p2)

我正在尝试编写的函数目前看起来像这样

def add (self, p2):
  sum=0
  for i in p1.data:
    for i in p2.data:
      sum+=(p1.data[i])+(p2.data[i])
  return sum

然后我定义两点

p1=point(2,[3,4])
p2=point(2,[6,7])

并尝试运行该功能:

p1.add(p2)

然后我得到错误

TypeError: list indices must be integers, not float

我的预期输出应该是坐标点。

(9,11)

请帮助我不知道我做错了什么。

4

1 回答 1

0

for i in p2.data迭代 p2.data 的元素,而不是索引,它们是浮点数,而不是整数。

尝试

for a, b in zip(self.data, p2.data)

看看你能走多远。它将一起遍历坐标。

例如,第一次迭代有aasself.data[0]bas p2.data[0]

下一次迭代有aasself.data[1]basp2.data[1]

于 2013-10-28T00:57:44.773 回答