From: Chris B. <Chr...@no...> - 2003-10-21 22:08:45
|
Russell Valentine wrote: > It may be my fault, but I think the following behaviour is odd. If I > try to change a array to a string it seems like it adds a lot of extra > zero characters. Take the following script attached as a example, it gives > me this output. You've misunderstood what tostring() is supposed to do. It takes the BINARY data representing the array, and dumps it into a Python string as a string of bytes. It is NOT doing a chr() on each element. As an example: >>> a = array((1.0)) >>> # a is now a one element Python Float (C double, 8 bytes) >>> s = a.tostring() >>> len(s) 8 >>> print repr(s) '\x00\x00\x00\x00\x00\x00\xf0?' >>> And there are your 8 bytes. By the way, in your code: tast = "" for value in ta: tast += chr(value) you could probably speed it up quite a bit by doing this instead: tast = [] for value in ta: tast.append(value) tast = "".join(tast) Using += with a string creates a new string, one charactor longer, each time. Appending to an a list is much faster, and the string join method is pretty quick also. -- Christopher Barker, Ph.D. Oceanographer NOAA/OR&R/HAZMAT (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception Chr...@no... |