2013-05-14 77 views
0

我試圖訪問長符號列表中的單個元素,以及使用Sympy生成的pow類型之一,這裏是如何在控制檯中出現的:訪問pow和符號列表中的單個元素sympy python

x00 
x01 
x10 
x11 
x00 
x10 
x20 
x00 
x01 
x02 
x03 
x00 
x01 
x10 
x02 
x11 
x12 
x00 
x01 
x10 
x11 
x20 
x21 
x00 
x10 
x20 
x30 

戰俘使用

A = (ymat[0])**(nvec[0]-mvec[0])    #alpha term: mu^(n-k) 
      for nv in range (1, nvariables): 
       A = A* (ymat[nv]**(nvec[nv]-mvec[nv])) 

生成,使用的符號:

 mstr = str(mvec[0])       #beta term: x^k 
     for mm in range(1, len(mvec)): 
      mstr = mstr + str(mvec[mm]) 
     B = Symbol('x'+mstr) 

我有三ED採用指數化在Python如A [1]但我收到錯誤消息:

TypeError: 'Symbol' object does not support indexing 

TypeError: 'Pow' object does not support indexing 

有誰知道我怎麼能訪問各個元素,如(1x00)

+0

符號列表來自哪裏?即一個函數調用返回一個發生器?一份文件? etc ... – HennyH 2013-05-14 12:49:26

+0

HennyH這些符號是由一個函數生成的,該函數從其他地方接受輸入,我可以發佈該代碼。 @root想不到其他任何東西叫它 – user124123 2013-05-14 12:54:26

+0

請給出完整的工作代碼來重現您的問題。我不知道'ymat','nvec'等是什麼。 – asmeurer 2013-05-15 20:13:14

回答

0

符號的名稱相同(也是假設,但它看起來並不像你使用的那樣),所以你可以用相同的名字重新創建相同的符號。所以如果你想x00,只需再次創建Symbol('x00'),它會給你同樣的東西。

+0

我只是試過這個,它打印的列表,但(x00)附加到每個元素。 「假設」是什麼意思? – user124123 2013-05-15 10:05:23

+0

假設是像創建符號時可能添加的「真實=真」的東西。 – asmeurer 2013-05-15 17:15:53