python
lists=[1,[0.2,0.3],[0.4,0.5],0.6]
我想产生这样的这样的多项式y(1-0.2-0.3+0.5x)(1-0.4-0.5=0.9x)(1-0.6+0.6x)这样的多项式应该怎么写
谢谢 python
[解决办法]
建议,将列表中第一个1改为list,[1],这样列表的所有元素就一样了,只是数据多少问题,然后就好办了,看代码
>>> a = [[1],[0.4,0.5],[0.6,0.4],[0.7,0.2]]
>>> print '('+')('.join(['1-'+'-'.join([str(c) for c in x])+'+'+str(sum(x)!=1 and sum(x) or '')+'x' for x in a])+')'
(1-1+x)(1-0.4-0.5+0.9x)(1-0.6-0.4+x)(1-0.7-0.2+0.9x)
[解决办法]
觉得应该朝简化有规律的方向,这样思路比较清楚容易写代码,要进一步拓展也容易些...
[1,[0.4,0.5],[0.6,0.4],[0.7,0.2]] -> [1, 0.9, 1, 0.9]
(1-1+x)(1-0.4-0.5+0.9x)(1-0.6-0.4+x)(1-0.7-0.2+0.9x) -> (0+1x)(0.1+0.9x)(0+1x)(0.1+0.9x)