2016-07-19 1 views
0

Я просто с помощью питона иногда в данный момент, так что я не понимаю, что случилось с этим кодом:резки трапецию (или любой другой) в нескольких кусков одинакового размера

from sympy.solvers import solve 
from sympy import Symbol 

x = Symbol('x') 
xpos = list([]) 
for i in range(6): 
    xp = solve(6*x+22/32*x**2-544/6*(i+1),x) 
    xpos.append(xp) 
xpos1 = list([])  
for i in range(len(xpos)): 
    xpos1.append(xpos[i][1]) 

Он должен дать мне список с позициями x, которые сократят трапецию на части того же размера ... Проблема в том, что список xpos1 сначала создается как пустой список, а затем он удаляется в последней строке кода. Когда я изменить последнюю строку

xpos1.append(xpos[i]) 

xpos1 создается (как копии XPOS, конечно). Что не так с кодом, я не понимаю?

Заранее спасибо

+0

выполняет ли сценарий, если вы удалите последние 3 строки? Также вам не нужно делать 'xpos = list ([])', это будет прекрасно: 'xpos = []'. Наконец, какой объект решает вернуться? кортеж? Если это просто число 'xpos [i] [1]' вернет ошибку. –

+0

xpos = [] не работает ... не знаю почему. xpos - это список с размером 6 * 2, xpos [1] [1] возвращает значение, которое я ищу. xpos1.append (xpos [1] [1]) отлично работает тоже ... просто в сочетании с циклом, который он выполняет, – derh

+0

Я скопировал ваш код, но при вызове 'xpos [1] [1]' Я получаю 'IndexError ' '. Вы хотели написать 'xpos [1] [0]'? Если я печатаю 'xpos', я получаю' [[15], [30], [45], [60], [75], [90]] ' –

ответ

0

Try распечатав переменную перед скрипт завершается:

from sympy.solvers import solve 
from sympy import Symbol 

x = Symbol('x') 
xpos = list([]) 
for i in range(6): 
    xp = solve(6*x+22/32*x**2-544/6*(i+1),x) 
    xpos.append(xp) 
xpos1 = list([])  
for i in range(len(xpos)): 
    xpos1.append(xpos[i][1]) 

print(xpos1) 

Таким образом, вы будете видеть содержимое списка.

+0

печать работает отлично, но мне нужны значения для дальнейших вычислений – derh

+0

Пожалуйста, добавьте больше кода, который вы выполняете, чтобы мы могли провести надлежащее расследование. На данный момент скрипт отлично работает в соответствии с моими испытаниями –

+0

это реально весь скрипт ... я просто хотел сделать быстрый расчет :) – derh

0

я испытал на Python3, с последней версией SymPy установленной через pip3 install sympy
И я не понимаю, что происходит неправильно в вашем коде, как это работает на моем компьютере. Я бы только предложить альтернативный подход к созданию списка xpos1:

xpos1 = [xp[1] for xp in xpos] 

Используя эту строку, вместо этого, я получаю желаемый результат.

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