2014-09-06 2 views
1

При повторении списков порядок от нулевого элемента до последнего. Но для возвращаемого значения функции chebyt scipy мне непонятно, как идет итерация. Рассмотрим следующий код:Итерация по спискам python: порядок итераций

from scipy.special import chebyt 
import numpy as np 

ChebyOrder = 5 
Coeffs = chebyt(ChebyOrder) 

print 'Chebyshev polynomial is: '+repr(Coeffs) 

Chebyshev polynomial is: poly1d([ 1.60000000e+01, 5.32907052e-15, -2.00000000e+01, 
    -5.12827628e-15, 5.00000000e+00, 3.71174867e-16]) 

Но итерация индекс дает:

L = len(Coeffs) 

print '(1) Iterating over index: ' 
    for i in range(L+1): 
    print Coeffs[i] 

(1) Iterating over index: 
3.71174867001e-16 
5.0 
-5.12827627586e-15 
-20.0 
5.3290705182e-15 
16.0 

В то время как итерация по списку дает:

print '(2) Iterating over list' 
for c in Coeffs: 
    print c 

(2) Iterating over list 
16.0 
5.3290705182e-15 
-20.0 
-5.12827627586e-15 
5.0 
3.71174867001e-16 

Из печати Чебышева многочлена или Перебор списка , нулевой элемент представляется равным 16 (коэффициент при х^4), тогда как при итерации по индексу коэффициента нулевой элемент представляется равным 0 (коэффициент при х^0). Может кто-нибудь объяснить это?

ответ

1

Coeffs[i] - коэффициент для i -я степень в полиноме (см. documentation).

Если вы хотите выполнить итерацию в том же порядке, что и на repr(), перейдите по ссылке Coeffs.c.

+0

спасибо, это имеет смысл. – MaviPranav

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