On 27 Dec 2006 07:18:22 -0800, neoedmund <[EMAIL PROTECTED]> wrote:
>i want to let a byte array to be xor with some value.
>but code show below i wrote seems not so .. good..., any better way to
>write such function? thanks.
>[code]
>def xor(buf):
>       bout=[]
>       for i in range(len(buf)):
>               x = ord(buf[i])
>               x ^= 123
>               bout.append(chr(x))
>       return "".join(buf)
>buf = "xxxxxxxx".encode("utf8")
>buf = xor(buf)
>

You can use numarray to do the same thing much more easily:

    >>> import numarray
    >>> buf = numarray.array('xxxxxxxx')
    >>> buf.tostring()
    'xxxxxxxx'
    >>> (buf ^ 123).tostring()
    '\x03\x03\x03\x03\x03\x03\x03\x03'
    >>>

In any case, you can at least drop the '.encode("utf8")'.  "xxxxxxx"
is already a byte string, there is no need to encode it.

Jean-Paul
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to