【发布时间】:2015-10-24 11:50:33
【问题描述】:
我将多项式放入嵌套列表中;例如5X^3+4X^2+8X。我将系数 (5,4,8) 存储在第一个列表中,将指数 (3,2,1) 存储在第二个列表中:
polynom = [[5,4,8],[3,2,0]]
然后我定义一个函数来弹出像这样的系数和指数的最后一项
def expon_coef_pop(seq):
expon = seq[1]
coef = seq[0]
expon.pop()
coef.pop()
return coef, expon
print(expon_coef_pop(polynom))
print(polynom)
# polynom changed into [[5,4],[4,2]]
令人惊讶的是,我发现polynom 的值变成了[[5,4],[3,2]]。
我以为我只是修改了expon 和coef 的值。
我不想改变多项式的值。
这怎么会发生,以及如何处理这个问题?我对为什么 polynorm 改变而不是功能感到困惑。 (我只是为了一个简单的例子写了这个函数。)
【问题讨论】:
-
怎么是 8X 不应该是 8 因为 X^0 是 1
-
coeff和expon是对与seq[0]和seq[1]相同的列表对象的引用。 -
对不起,打错了(●'◡'●)