Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #105929

Re: repeat items in a list

From Erik <python@lucidity.plus.com>
Newsgroups comp.lang.python
Subject Re: repeat items in a list
Date 2016-03-28 23:14 +0100
Message-ID <mailman.118.1459203257.28225.python-list@python.org> (permalink)
References <8935d5dc-5e62-4fa8-8e8f-bd5b1787ee9f@googlegroups.com> <mailman.65.1459034636.28225.python-list@python.org> <c4cf6ed9-cf6a-474b-b471-ce1066fd423d@googlegroups.com> <ndbpoc$o2$1@dont-email.me> <CAPTjJmpNNM_0HL7vSjk00T-UM9N+3dtfgqwP7NO2gQG8dzJaWg@mail.gmail.com>

Show all headers | View raw


On 28/03/16 22:25, Chris Angelico wrote:
> Just out of interest, did you (generic you)  happen to notice Mark's
> suggestion? It's a one-liner that nicely expresses the intention and
> accomplishes the goal:
>
> yy = [aa for aa in xx for _ in range(nrep)]
>
> It quietly went through without fanfare, but I would say this is the
> perfect solution to the original problem.

I noticed it (and I timed it - it was ~30% faster than my version 
(because mine was creating short transient list objects), but it takes a 
_LOT_ - millions - of iterations of the example case (nrep = 3, xx = 
two-element-list) to even make it measurable on my PC). It would have 
probably been even quicker if he'd cached the range() object.

I'm not convinced it's particularly intuitive, though. That trailing 
"for _ in range(nrep)" looks at first glance like an error - some code 
that's generating a value that is not referenced anywhere else.

It makes perfect sense when one analyses it, but it's not the most 
immediately grokkable construct.

Hmmm. It's almost as if in this instance I'd prefer something like:

   yy = [for aa in xx for _ in range(nrep): aa]

But I know we can't go /there/ ;)

E.

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

repeat items in a list beliavsky@aol.com - 2016-03-26 15:12 -0700
  Re: repeat items in a list Cameron Simpson <cs@zip.com.au> - 2016-03-27 10:05 +1100
  Re: repeat items in a list Erik <python@lucidity.plus.com> - 2016-03-26 23:23 +0000
    Re: repeat items in a list beliavsky@aol.com - 2016-03-26 16:36 -0700
      Re: repeat items in a list Rob Gaddi <rgaddi@highlandtechnology.invalid> - 2016-03-28 17:30 +0000
        Re: repeat items in a list Chris Angelico <rosuav@gmail.com> - 2016-03-29 08:25 +1100
          Re: repeat items in a list Antonio Caminero Garcia <tonycamgar@gmail.com> - 2016-03-29 01:43 -0700
        Re: repeat items in a list Erik <python@lucidity.plus.com> - 2016-03-28 23:14 +0100
  Re: repeat items in a list Mark Lawrence <breamoreboy@yahoo.co.uk> - 2016-03-26 23:28 +0000
    Re: repeat items in a list beliavsky@aol.com - 2016-03-26 16:54 -0700
      Re: repeat items in a list Paul Rubin <no.email@nospam.invalid> - 2016-03-26 22:35 -0700
  Re: repeat items in a list Antonio Caminero Garcia <tonycamgar@gmail.com> - 2016-03-27 01:02 -0700
    Re: repeat items in a list Antonio Caminero Garcia <tonycamgar@gmail.com> - 2016-03-27 01:30 -0700
    Re: repeat items in a list Jussi Piitulainen <jussi.piitulainen@helsinki.fi> - 2016-03-27 14:09 +0300
  Re: repeat items in a list larudwer <larudwer@freenet.de> - 2016-03-27 11:52 +0200
    Re: repeat items in a list Antonio Caminero Garcia <tonycamgar@gmail.com> - 2016-03-27 04:13 -0700
      Re: repeat items in a list larudwer <larudwer@freenet.de> - 2016-03-28 13:36 +0200
        Re: repeat items in a list Random832 <random832@fastmail.com> - 2016-03-28 10:04 -0400
        Re: repeat items in a list Vito De Tullio <vito.detullio@gmail.com> - 2016-03-29 23:25 +0200
        Re: repeat items in a list Michael Selik <michael.selik@gmail.com> - 2016-03-29 22:05 +0000
        Re: repeat items in a list Peter Otten <__peter__@web.de> - 2016-03-30 17:52 +0200

csiph-web