On Fri, 25 Mar 2011 08:19:24 -0700, joy99 wrote: > Dear Group, > > I got a question which might be possible but I am not getting how to do > it. > > If I have a list, named, > list1=[1.0,2.3,4.4,5.5....]
That looks like a list of floats already. Perhaps you meant: list1 = ["1.0", "2.3", "4.4", "5.5"] Notice that the elements are now strings, not floats. > Now each element in the array holds the string property if I want to > convert them to float, how would I do it? > > Extracting the values with for and appending to a blank list it would > not solve the problem. If appended to a blank list, it would not change > the property. I don't understand what you mean. You want to get a list of floats. You create a list of floats. How does that not solve the problem? Wait, do you mean you want to change them *in-place*? Like this: >>> alist = ["1.1", "2.2", "3.3", "4.4", "5.5"] >>> blist = alist # reference to the same list object >>> alist[:] = map(float, alist) >>> print(blist[0] + 1) # prove that it is an in-place change 2.1 The key is the slice assignment: map(float, alist) creates a new list, but the assignment alist[:] = ... stores those values in the original list, instead of just binding the name to a new object. It is equivalent to this: temp = map(float, alist) del alist[:] # empty the list in place alist.extend(temp) del temp # delete the variable only easier and faster. If you don't like map(), you can use a list comprehension: alist[:] = [float(s) for s in alist] Finally, if your list is so truly astonishingly huge that you don't have room for it and the list-of-floats at the same time, hundreds of millions of items or more, then you can change the list items in place: for i, s in enumerate(alist): alist[i] = float(s) But for small lists and merely large lists (millions or tens of millions) of items, this will probably be much slower than the solutions shown above. But your MMV -- time your code and find out for yourself. -- Steven -- http://mail.python.org/mailman/listinfo/python-list