python - 向对象添加新元素

标签 python

我正在使用一个多项式程序,它接受像这样的术语对,其中输入是(系数,指数)

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/

相关文章:

python - 跳过 html5lib 中视频的清理

python - 如何使用dblquad进行二重积分?

python - 如何将 Python 线程代码转换为多处理代码?

python - 如何在 dask 数据框中添加反射(reflect)日期值(来自列)是否是假期成员的列

python - 在networkx中使用draw_circular函数时如何指定边缘样式(实线、点线、虚线)?

python - 数据单位的行上限长度是多少?

python - 防止/改变对类变量的访问

python - 如何使用sql数据库中的列值作为python函数的参数?

python - Odoo - 添加自定义字段属性?

python - 在 Python 中读取文件并绘制 CDF