Creating a list in Python with multiple copies of a given object in a single line

You can use the * operator :

L = ["a"] * 10
L = [0] * 10
L = [["x", "y"]] * 10

Be careful this create N copies of the same item, meaning that in the third case you create a list containing N references to the ["x", "y"] list ; changing L[0][0] for example will modify all other copies as well:

>>> L = [["x", "y"]] * 3
>>> L
[['x', 'y'], ['x', 'y'], ['x', 'y']]
>>> L[0][0] = "z"
[['z', 'y'], ['z', 'y'], ['z', 'y']]

In this case you might want to use a list comprehension:

L = [["x", "y"] for i in range(10)]

Leave a Comment