On Wed, 12 Apr 2006 06:53:23 -0700, robin wrote: > hi, > > i'm doing some udp stuff and receive strings of the form '0.870000 > 0.250000 0.790000;\n' > what i'd need though is a list of the form [0.870000 0.250000 0.790000] > i got to the [0:-3] part to obtain a string '0.870000 0.250000 > 0.790000' but i can't find a way to convert this into a list. i tried > eval() but this gives me the following error: > > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File "<string>", line 1 > .870000 0.250000 0.79000
# untested! def str2list(s): """Expects a string of the form '0.87 0.25 0.79;\n' and returns a list like [0.87, 0.25, 0.79] WARNING: this function has only limited error checking. """ s = s.strip() # ignore leading and trailing whitespace if s.endswith(';'): s = s[:-1] L = s.split() assert len(L) == 3, "too many or too few items in list." return [float(f) for f in L] > and i have the same problem the other way round. e.g. i have a list > which i need to convert to a string in order to send it via udp. That's even easier. def list2str(L): """Expects a list like [0.87, 0.25, 0.79] and returns a string of the form '0.870000 0.250000 0.790000;\n'. """ return "%.6f %.6f %.6f;\n" % tuple(L) -- Steven. -- http://mail.python.org/mailman/listinfo/python-list