Suppose I have a given Object (a string “a”, a number – let’s say 0, or a list ['x','y'] )
I’d like to create list containing many copies of this object, but without using a for loop:
L = ["a", "a", ... , "a", "a"]
or
L = [0, 0, ... , 0, 0]
or
L = [['x','y'],['x','y'], ... ,['x','y'],['x','y']]
I’m especially interested in the third case.
Thanks!
itertools.repeat()is your friend.Note that in the third case, since lists are referred to by reference, changing one instance of [‘x’,’y’] in the list will change all of them, since they all refer to the same list.
To avoid referencing the same item, you can use a comprehension instead to create new objects for each list element:
(For Python 2.x, use
xrange()instead ofrange()for performance.)