On Sun, Jun 5, 2022, 12:08 PM MRAB <pyt...@mrabarnett.plus.com> wrote:
> On 2022-06-05 16:12, David Mertz, Ph.D. wrote: > > This is exactly the problem solved by set difference. E.g. `{a, b, c} > - {a, c}`. > > > > This operation is linear on the size of the removed set. > > > You don't have to use a set difference, which might matter if the order > was important, but just make a set of the ones found: > > s = set(b) > > And then the list comprehension: > > [x for x in a if x not in s] > Sure, that's nice enough code and has the same big-O complexity. I suspect set difference is a little faster (by a constant multiple) because it hits C code more, but I haven't benchmarked. The OP said the elements were from fnmatch though, which explicitly does not promise order. So really it's just whether you like your code or this better aesthetically: list(set(b) - set(a)) Personally I like my (somewhat shorter) version as more clear. But YMMV. >
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/FD3JEDTKB4COFBRSLGIT53Y2GFW6MTZF/ Code of Conduct: http://python.org/psf/codeofconduct/