Dave and Christian Thanks a lot for the help, it looks like it works!
Chris -------- Original-Nachricht -------- > Datum: Mon, 20 Dec 2010 07:32:45 -0500 > Von: Dave Angel <da...@ieee.org> > An: Chris Begert <c...@gmx.de> > CC: tutor@python.org > Betreff: Re: [Tutor] doing maths on lists > On 01/-10/-28163 02:59 PM, Chris Begert wrote: > > Bonjour > > > > I have three lists with 65 float items and would like to do the > following sum: > > > > L0 = ([sum(L0A[i]*cos(L0B[i]+L0C[i]*JME) for i in range(0,64,1))]) > > > > So it just should do a sum across all the items in the list: > > > > L0A[0]*cos(L0B[0]+L0C[0]*JME)+ L0A[1]*cos(L0B[1]+L0C[1]*JME)+... > > + L0A[64]*cos(L0B[64]+L0C[64]*JME)= some float number > > > > > > However, I always get this error: > > > > TypeError: can't multiply sequence by non-int of type 'float' > > > > > > I looked it up and there seems to be some solution using either the > "for-in" command or the "map(int,...)" command but I just can't get it to > work.... > > > > > > Any help will be very much appreciated :) > > > > Greetings from Sydney > > Chris > > Look up range(), and notice that the first and 3rd arguments default to > 0 and 1 respectively. So you're just doing range(64), which gives you > the first 64 items in the list. But you said there were 65, so why > didn't you use 65 ? > > Where did you get that python expression? If you just want a sum, > there's no need for the outer pair of square braces or parentheses. As > it is, it'll correctly build a list of 1 item, which is the sum of all > but one term of the desired expression. > > Anyway, the expression doesn't give an error, if you've really got those > three arrays of floats. My guess is that you either copied the > expression wrong (use copy/paste), or you've got something else in those > lists. Make a simple test case, and show the whole thing, including > imports: > > > from math import cos > > JME = 0.4 > L0A = [2.3, 4.65] > L0B = [1.8, 2.2] > L0C = [12.1, 4] > limit = len(L0A) > > L0 = sum(L0A[i]*cos(L0B[i]+L0C[i]*JME) for i in range(limit)) > > > print L0 > > runs fine with Python 2.6 on Linux, producing output of: > > -1.52286725666 > > > DaveA -- Neu: GMX De-Mail - Einfach wie E-Mail, sicher wie ein Brief! Jetzt De-Mail-Adresse reservieren: http://portal.gmx.net/de/go/demail _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor