Hi Walter,
Thanks a lot!

Yes, now I get your point. append is working perfectly fine.

Hi Peter:

Exactly. It's very nice. Indices needn't have to be mentioned explicitly.
No explicit looping and the thing is done!

But I have a question, whenever we want to do operations on the individual
array elements, don't we have to mention the indices explicitly i.e p_za[i]?

1) Traceback (most recent call last):
  File "ZA.py", line 44, in <module>
    p_za = p_za % 4
TypeError: unsupported operand type(s) for %: 'list' and 'int'



2) Traceback (most recent call last):
  File "ZA.py", line 43, in <module>
    if p_za[i] > 4.0:
ValueError: The truth value of an array with more than one element is
ambiguous. Use a.any() or a.all()

When the i indices are removed * (1) * error message is showing up and when
i is included *(2) *is shown.* *








On 27 March 2013 22:29, Walter Prins <wpr...@gmail.com> wrote:

> Hi Sayan,
>
> On 27 March 2013 16:31, Sayan Chatterjee <sayanchatter...@gmail.com>wrote:
>
>> p_za = [None]*N is not giving away the error message.
>>
>> for i in range(0,N):
>>     p_za.append = p_initial[i] + t*K*cos(K*p_initial[i]); is also not
>> working.
>>
>
> append() is a method, so using append you want something like:
>
> for i in range(0,N):
>     p_za.append( p_initial[i] + t*K*cos(K*p_initial[i]) );
>
> After every loop iteration, the list grows by having one item appended to
> it, being the result of the expression: p_initial[i] +
> t*K*cos(K*p_initial[i])
>
>
>> Could you please redirect me to a link where the example is demonstrated?
>>
>
> http://courses.cms.caltech.edu/cs11/material/python/misc/python_idioms.html
>
> See the paragraph on "Sequence multiplication".
>
>
>
>> What is the simplest way to assign an array element a value?
>>
>
> What you have is fine for assignment to a particular slot in the list.
> What you've missed and has already been pointed out, is to initialise/set
> the length of your list first, before trying to set the value of arbitrary
> slots.  In the C example you posted the array is declared with length 200
> up front.  In your Python code however you assign [], which is a list of
> length 0.   By contrast, the expression I gave you before, e.g. [None] * N,
> generates a list of length N, with each element in the list being the None
> object, thus initialising the list, ensuring that you can later assign to
> arbitrary slots when needed.
>
> Walter
>
>
>



-- 


--------------------------------------------------------------------------
*Sayan  Chatterjee*
Dept. of Physics and Meteorology
IIT Kharagpur
Lal Bahadur Shastry Hall of Residence
Room AB 205
Mob: +91 9874513565
blog: www.blissprofound.blogspot.com

Volunteer , Padakshep
www.padakshep.org
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to