Your example is really repeating two things: d = [ [0 for _ in range(5)] for _ in range(10) ]
But since list() uses * for repetition, you could write it more concisely as: d = [[0] * 5] * 10] I'm not picking on your specific example. I am only pointing out that Python gives you the tools you need to build nice APIs. If repetition is an important part of something you're working on, then consider using itertools.repeat, writing your own domain-specific repeat() method, or even override * like list() does. One of the coolest aspects of Python is how a relatively small set of abstractions can be combined to create lots of useful behaviors. For students, the lack of a "repeat" block might be confusing at first, but once the student understands for loops in general, it's an easy mental jump from "using the loop variable in the body" to "not using the loop variable in the body" to "underscore is the convention for an unused loop variable". In the long run, having one syntax that does many things is simpler than having many syntaxes that each do one little thing. On Thu, Mar 30, 2017 at 5:18 AM, Markus Meskanen <markusmeska...@gmail.com> wrote: > Hi Pythonistas, > > yet again today I ended up writing: > > d = [[0] * 5 for _ in range(10)] > > And wondered, why don't we have a way to repeat other than looping over > range() and using a dummy variable? This seems like a rather common thing > to do, and while the benefit doesn't seem much, something like this would > be much prettier and more pythonic than using underscore variable: > > d = [[0] * 5 repeat_for 10] > > And could obviously be used outside of comprehensions too: > > repeat_for 3: > print('Attempting to reconnect...') > if reconnect(): > break > else: > print('Unable to reconnect :(') > sys.exit(0) > > I chose to use repeat_for instead of repeat because it's way less likely > to be used as a variable name, but obviously other names could be used like > loop_for or repeat_times etc. > > Thoughts? > > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ > >
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/