List of strings to list of floats ?
Madhusudan Singh
spammers-go-here at spam.invalid
Mon Oct 17 13:17:12 EDT 2005
Steve Holden wrote:
> Madhusudan Singh wrote:
>> skip at pobox.com wrote:
>>
>>
>>> Madhusudan> Is it possible to convert a very long list of strings to
>>> a Madhusudan> list of floats in a single statement ?
>>>
>>> Madhusudan> I have tried float(x) and float(x[:]) but neither work. I
>>> Madhusudan> guess I would have to write a loop if there isn't a way.
>>>
>>>Try:
>>>
>>> >>> los = ["123.0", "2", "1e-6"]
>>> >>> map(float, los)
>>> [123.0, 2.0, 9.9999999999999995e-07]
>>> >>> [float(s) for s in los]
>>> [123.0, 2.0, 9.9999999999999995e-07]
>>>
>>>Skip
>>
>>
>> Thanks. Now, a slightly more complicated question.
>>
>> Say I have two lists of floats. And I wish to generate a list of floats
>> that is a user defined function of the two lists.
>>
>> I tried :
>>
>> def rpyth(x,y):
>> r=sqrt(pow(x,2.0)+pow(y,2.0))
>> return r
>>
>> r1n=map(rpyth,x2n[1:len(x2n)-1],y2n[1:len(y2n)-1])
>>
>> And I get an error complaining about floats.
>
> ... but the error message is a secret so you don't want to tell us what
> it was? It's more helpful if you actually copied and pasted the exact
> error traceback you see, as this avoids any potential answerer having to
> guess what went wrong.
>
> A brief description of what you were trying to do is also helpful, since
> it isn't obvious at first glance why you are omitting some of hte list
> elements.
>
> regards
> Steve
I apologize for that.
The error message is :
Traceback (most recent call last):
File "takedata.py", line 163, in ?
r1n=map(rpyth,x2n[1:len(x2)-1],y2n[1:len(y2)-1])
File "takedata.py", line 15, in rpyth
r=sqrt(pow(x,2.0)+pow(y,2.0))
TypeError: a float is required
I understand why the error is occuring (pow is not overloaded to accept
lists of floats instead of floats ?). How do I fix this ?
More information about the Python-list
mailing list