On 01/04/2018 18:55, Arkadiusz Bulski wrote:
What would be the most performance efficient way of checking if a bytes is
all zeros? Currently its `key == b'\x00' * len(key)` however, because its
Python 2/3 compatible:

That doesn't too efficient, if you first have to construct a compatible object of all zeros.


sum(key) == 0 is invalid
key == bytes(len(key)) is invalid

I already considered precomputing the rhs value.
Length of key is unknown,

(So how can you precompute the table?)

 could be few bytes, could be megabytes.


How likely would be a block of all zeros? Or one that is all zeros but with a sparse smattering of non-zeros?

If not very, then just check the bytes one by one. If non-zero, you will know as soon as you see the first non-zero byte, possibly the first one.

def allzeros(a):
    for x in a:
        if x: return 0
    return 1


--
bartc
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to