【发布时间】:2022-12-17 07:17:09
【问题描述】:
我知道如何为 2n 向量实现一个类。
class vect:
def __init__(self, *a):
self.a = a
def plus(self, *plus):
res_plus = [vi + wi for vi, wi in zip(self.a, plus)]
return res_plus
def minus(self, *minus):
res_minus = [vi - wi for vi, wi in zip(self.a, minus)]
return res_minus
def multiply(self, mult):
res_multiply = [mult * vi for vi in self.a]
return res_multiply
x = vect(1,2,3)
print('plus:', x.plus(3,2,1))
它工作正常 加上:[4, 4, 4]
但是随着
x = vect([1,2,3])
print('plus:', x.plus([3,2,1]))
我得到加号:[[1, 2, 3, 3, 2, 1]]
如何解决这个问题
def convert(list):
return (*list, )
【问题讨论】:
-
那么问题是什么?你能指望什么?
-
如果从 init 中删除 *,则加上和减去。例如
__init__(self, a),然后x = vect([1,2,3]) print('plus:', x.plus([3,2,1]))就可以了。*list表示您传递的是参数列表而不是列表(您在第二个示例中正在这样做)