Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #105833
| From | Jussi Piitulainen <jussi.piitulainen@helsinki.fi> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: repeat items in a list |
| Date | 2016-03-27 14:09 +0300 |
| Organization | A noiseless patient Spider |
| Message-ID | <lf5bn60qis8.fsf@ling.helsinki.fi> (permalink) |
| References | <8935d5dc-5e62-4fa8-8e8f-bd5b1787ee9f@googlegroups.com> <74fc27bf-22fe-4f7e-ac54-78be6b518562@googlegroups.com> |
Antonio Caminero Garcia writes:
> On Saturday, March 26, 2016 at 11:12:58 PM UTC+1, beli...@aol.com wrote:
>> I can create a list that has repeated elements of another list as
>> follows:
>>
>> xx = ["a","b"]
>> nrep = 3
>> print xx
>> yy = []
>> for aa in xx:
>> for i in range(nrep):
>> yy.append(aa)
>> print yy
>>
>> output:
>> ['a', 'b']
>> ['a', 'a', 'a', 'b', 'b', 'b']
>>
>> Is there a one-liner to create a list with repeated elements?
>
> What about this?
>
> def rep_elements(sequence, nrep):
> #return [ritem for item in sequence for ritem in [item]*nrep]
> return list(chain.from_iterable(([item]*nrep for item in sequence)))
>
> sequence = ['h','o','l','a']
> print(rep_elements(sequence, 3))
A thing to know about the comprehension-syntaxes is that they correspond
precisely to nested loops (and conditions, but conditions don't appear
in the present example) with an .append inside.
xx = "ab"
nrep = 3
print([ aa for aa in xx for i in range(nrep) ])
(This has been posted in this thread a few times already, but I think
the systematic correspondence to the original loops was left unstated.
Apologies in advance if I missed something.)
The resulting list has some hidden name. The original loops should be
re-mentalized for an even closer correspondence as follows.
g47 = []
for aa in xx: # Loopy ...
for i in range(nrep): # ... do!
g47.append(aa) # <-- _This_ aa is one of the result items.
yy = g47
A thing about range objects is that they can be reused, so the present
example could also reuse just one.
xx = "ab"
reps = range(3)
print([ aa for aa in xx for i in reps ])
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll 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