2013-05-17 90 views
0

我試圖讓sympy在迭代的基礎上用一個符號代替另外兩個符號。 目前,我有一些代碼,做一些支架和賣場的擴張每次迭代:sympy序列替換python

for i in range(0,nMoments-1): 
    middle.append(K+i) 

生產

[K] 
[K, K + 1] 
[K, K + 1, K + 2] 

我想什麼做的是爲每一行對於K代替兩個符號,它們本身存儲在等長度爲m1和m2的矢量中。因此,對於第一行,對於每個KI想要替代m1 [0]/m2 [0],然後對於第二行中的每個K1 [1]/m2 [1],對於第三行中的K1 m1 [2 ] /平方米[2]等

使得用於中間[0]的M1和M2矢量的指數化當量放入K.

作爲參考,nMoments只是一個int變量

從我可以告訴你,我最親密的嘗試至今

for i in range(0,nMoments): 
    K.replace(K,m1[i]**2/m2[i]) 
    print middle 

然而,這會產生這樣的:

[K, K + 1, K + 2] 
[K, K + 1, K + 2] 
[K, K + 1, K + 2] 

有誰知道我該如何解決這個問題?

非常感謝!

+0

'type(K)'是什麼? – unutbu

+0

@unutbu這是一個sympy符號:'' – user124123

+3

你想要'replace'的返回值。這不是在現場。 – Krastanov

回答

1

這是你想要的嗎?

for i in range(nMoments): 
    middle[i] = middle[i].subs(K, m1[i]**2/m2[i]) 
+0

這不起作用,最後我從原來的問題中描述了這個過程,但是很多非常感謝! – user124123