[Guido] > ,,, > I learned something in this thread -- I had no idea that the deque datatype > even has an option to limit its size (and silently drop older values as new > ones are added), let alone that the case of setting the size to zero is > optimized in the C code. But more importantly, I don't think I've ever needed > either of those features, so maybe I was better off not knowing about them?
I was aware of both, but never used maxsize=0. It appeals, I guess, for much the same reason it's sometimes convenient to throw away output in a Unixy shell just by redirecting to /dev/null. I write the `for` loop instead because it's clear at once. Non-zero sizes do have real uses, obviously so when working with linear recurrences. For example, a Fibonacci generator: def fib(): from collections import deque d = deque([0, 1], 2) yield from d while True: c = sum(d) yield c d.append(c) Of course the deeper the recurrence, the more pleasant this is than hoping not to make a subtle typo when shifting N variables "by hand". > Have we collectively been nerd-sniped by an interesting but unimportant > problem? Pretty much ;-) Here's another: what's the fastest way to get a Python loop to go around N times? Bingo: for _ in itertools.repeat(None, N): No dynamic memory churn: no new objects created per iteration. not even under the covers (the implementation uses a native C ssize_t to hold the remaining iteration count). itertools is the answer to every question ;-) _______________________________________________ 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/3V4WX4KTDQEB624GJTXPSW7Y5HD3BSJ3/ Code of Conduct: http://python.org/psf/codeofconduct/