Simple list question

Dave Brueck dave at pythonapocrypha.com
Fri Jan 30 11:00:26 EST 2004


C GIllespie wrote:
> I have a list something like this: ['1','+','2'], I went to go through and
> change the numbers to floats, e.g. [1,'+',2]. What's the best way of doing
> this? The way I done it seems wrong, e.g.
> 
> nod=['1','+','2']
> i=0
> while i<len(nod):
>     if nod[i] !='+' or nod[i] !='-' or nod[i]!='*' or nod[i] != '/' or
> nod[i] != '(' or nod[i] != ')':
>         nod[i] = float(nod[i])
>     i = i + 1

How about:

>>> nod = ['1','+','2']
>>> for i in range(len(nod)):
...   try:
...     nod[i] = float(nod[i])
...   except ValueError: pass
...
>>> nod
[1.0, '+', 2.0]

-Dave




More information about the Python-list mailing list