Python: Append item to list N times

StackOverflow

This seems like something Python would have a shortcut for. I want to append an item to a list N times, effectively doing this:

l = []
x = 0
for i in range(100):
    l.append(x)

It would seem to me that there should be an "optimized" method for that, something like:

l.append_multiple(x, 100)

Is there?

Answer rating: 154

For immutable data types:

l = [0] * 100
# [0, 0, 0, 0, 0, ...]

l = ["foo"] * 100
# ["foo", "foo", "foo", "foo", ...]

For values that are stored by reference and you may wish to modify later (like sub-lists, or dicts):

l = [{} for x in range(100)]

(The reason why the first method is only a good idea for constant values, like ints or strings, is because only a shallow copy is does when using the <list>*<number> syntax, and thus if you did something like [{}]*100, you"d end up with 100 references to the same dictionary - so changing one of them would change them all. Since ints and strings are immutable, this isn"t a problem for them.)

If you want to add to an existing list, you can use the extend() method of that list (in conjunction with the generation of a list of things to add via the above techniques):

a = [1,2,3]
b = [4,5,6]
a.extend(b)
# a is now [1,2,3,4,5,6]




Get Solution for free from DataCamp guru