我正在使用一个多项式程序,它接受像这样的术语对,其中输入是(系数,指数)
P1 = 多项式((9, 11), (6, 14), (-12, 3), (42, 0))
这是我的构造函数:
def __init__(self, *termpairs):
L = [x for x in termpairs]
L = sorted(L, key=lambda x: x[1], reverse=True)
self.coeffs = L
所以我的问题是如何向已经创建的对象添加另一个术语?新术语的添加方式如下 P1.addterm(coefficient, exponent) ,这是我到目前为止所拥有的,但它不起作用:
def addterm(self, *newterm):
for i in range(len(self.coeffs)):
if self.coeffs[i][1] == newterm[1]:
#code for when exponent is already in polynomial
break
else:
self.coeffs = Polynomial(self.coeffs), newterm)
break
最佳答案
看起来您的所有术语都只是列表 self.coeffs
中的元组元素。在这种情况下......
def addterm(self, newcoeff, newexp):
newterm = (newcoeff, newexp)
self.coeffs.append(newterm)
self.coeffs.sort(key=lambda x: x[1], reverse=True)
# operator.itemgetter is probably better here.
# # self.coeffs.sort(key=operator.itemgetter(1), reverse=True)
关于python - 向对象添加新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43580210/