Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The list comparison here is also true when the first list is a prefix of the other:

    class list:
        def __eq__(self, other):
            return all(x == y for x, y in zip(self, other))

            # Can also be written as:
            return all(self[i] == other[i] for i in range(len(self)))
run that with `[1,2,3]` and `[1,2,3,4]` and it'll be true because it only checks up to the 3.

It's probably simplest to compare `len(self) == len(other)` before.

Similarly, the set comparison will also be true if the first is a subset of the other.



Yup, I'll fix this, thanks for pointing it out.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: