在Python中将值赋给数组
n = 1
for n in range(3):
p = Poly(a[n+1][0:3])
print p
n=n+1
这是我的代码。简单来说,我有一个3乘3的矩阵,我想把每一行分配给一个多项式函数,然后把每个多项式函数的结果放到一个新的数组里。不过,我不知道怎么把每次从多项式函数执行出来的值放到我想要的数组里。
有人能帮帮我吗?
执行多项式函数后得到的输出看起来像这样:
(749.55*x**2) + (6.95*x**1) + (9.68*(10^-4)*x**0)
(1285*x**2) + (7.051*x**1) + (7.375*(10^-4)*x**0)
(1531*x**2) + (6.531*x**1) + (1.04*(10^-3)*x**0)
基本上,从执行的多项式输出中构建一个3乘1的数组就可以了。
顺便说一下,我的矩阵a看起来是这样的:
[['A', 'B', 'C', 'PMIN', 'PMAX'], ['749.55', '6.95', '9.68*(10^-4)', '320', '800'], ['1285', '7.051', '7.375*(10^-4)', '300', '1200'], ['1531', '6.531', '1.04*(10^-3)', '275', '1100']]
[['A' 'B' 'C' 'PMIN' 'PMAX']
3 个回答
0
不过,我不知道每次从多项式函数执行时,如何把p的值赋给我想要的数组。
results = []
for x in range(3):
p = Poly(something)
results.append(p) # adding it to the list `results`
顺便说一下,在Python中,没有数组,只有列表(从0开始的集合)和字典,更像是哈希表。
1
列表推导式用很简单的方式描述了这个:
def Poly(a):
return "{}x^2 + {}x + {}".format(a[0],a[1],a[2])
a = [['A', 'B', 'C', 'PMIN', 'PMAX'],[1,2,3,99,99],[4,5,6,42,42],[7,8,9,3.14,2.72]]
result = [Poly(a[n]) for n in range(1,4)]
print result
输出结果是:
['1x^2 + 2x + 3', '4x^2 + 5x + 6', '7x^2 + 8x + 9']
0
试试这个:
p = []
for n in range(3):
p.append(Poly(a[n+1][0:3]))
print p
我没有你的 Poly
函数或 a
数组的访问权限,但我们可以这样测试:
p = []
for n in range(3):
p.append([n,n+1,n+2])
print p
#output:
#[[0, 1, 2],
# [1, 2, 3],
# [2, 3, 4]]
我还去掉了你写的 n+1
和 n=n+1
这两行,因为使用 n in range(3)
时,这些操作是自动完成的,具体是这样的:
for n in range(3):
print n
#output:
# 0
# 1
# 2
(注意,它是从 0
开始,到 2
结束,这样可以确保它正好运行 3
次)