Richard Musil wrote: > On Sat, Sep 21, 2019 at 1:44 AM Richard Higginbotham higgi...@gmail.com > wrote: ..... > I wrote all this to show that without an insight it might be sometimes > difficult or impossible to do it right (I was caught myself in several > pitfalls on my original benchmarks I posted here) and also because it was > actually a fun to learn quite a few things from this thread. I am however > not convinced that step-compare lists can compete with set operations (even > when done on lists) at the current state of things. > Richard M. I really appreciate the time and thought you have put into it (and others here as well), and its been educational / fun for me too. One of the concerns I have about using timeit is that it puts a lot of focus on the exact statements that are being executed and all the internals underneath. Looking at "list(set(a).difference(b))"; I suspect what I am seeing is 3 C calls from python. Anything after that is a comparison between C (here) and Python (in list_relcomp). I use Python for prototyping a lot so I tend to look for those situations more.
When I first wrote the algorithms(2000 or so) I compared them to [x for x in a if x in b] and I found that the later was faster. I didn't make sense at first but it was because the 'x in b' is done in C (I had just graduated and started using Python). If the data set was large enough I could see the big O growth was greater for the C version versus the python version. Similar to what we see here in the difference between the set operations and listex. I implemented listex in C and it was much faster at all data sizes over maybe 10 elements. I don't expect the same speedup compared to sets because they are more efficient. I also can't guarantee that the trend of set operations having a higher time growth will hold true for all data sizes. I only point it out and say for some use cases set relation operations aren't optimal, but they may be good enough. _______________________________________________ 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/7KXGNQFEB5M73YLK2ISJSNPKOPJKJBF7/ Code of Conduct: http://python.org/psf/codeofconduct/