2013-05-14 2 views
0

Я пытаюсь получить доступ к отдельным элементам в длинном списке символов, а один из типов pow, сгенерированных с помощью Sympy, вот как выходить на консоль:доступ к отдельным элементам из списка 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) 

Я три ред использование индексации в питоне, такие как А [1], но я получаю сообщение об ошибке:

TypeError: 'Symbol' object does not support indexing 

или

TypeError: 'Pow' object does not support indexing 

Кто-нибудь знает, как я могу получить доступ к отдельным элементам, например, (1x00)

+0

Откуда появляется список символов. I. Функциональный вызов, который возвращает генератор? Файл? и т. д. – HennyH

+0

HennyH Символы генерируются функцией, которая вводит данные из других источников, я могу опубликовать этот код. @root не мог придумать ничего другого, чтобы назвать его – user124123

+0

Просьба дать полный рабочий код для воспроизведения вашей проблемы. Я понятия не имею, что такое 'ymat',' nvec' и т. Д. – asmeurer

ответ

0

Символы сравниваются по имени (а также по предположениям, но не похоже, что вы их используете), поэтому вы можете просто воссоздать один и тот же символ, сделав одно с тем же именем. Поэтому, если вы хотите x00, просто создайте Symbol('x00'), и он даст вам то же самое.

+0

Я просто попробовал это, и он распечатал список, но с (x00), добавленным к каждому элементу. Что вы подразумеваете под «по предположениям»? – user124123

+0

Допущения - это такие вещи, как 'real = True', которые вы можете добавить при создании символа. – asmeurer

Смежные вопросы