Explain why creating a list of several instances of one element using something like my_list = [a] * 5 can result in strange behaviour

A good example for this would be>>> a = [0]>>> l = [a] * 5>>> l[[0], [0], [0], [0], [0]]>>> l[0][0] = 1>>> l[[1], [1], [1], [1], [1]]
You can see how creating a list of lists using multiplication results in the same object being passed rather than being cloned. This means that anytime any one element is changed in the lists, all elements change. Having a set to 0 (a single integer, instead of a list with a single integer), would work fine: that is because python copies integers differently than lists. This can get confusing, so you should always avoid statements like [a] * 5.

GM
Answered by Gustas M. Python tutor

1549 Views

See similar Python Mentoring tutors

Related Python Mentoring answers

All answers ▸

Give a segment of python code that will print the numbers 1 to 7, each one on a new line


With the help of Pandas and Numpy library create a DataFrame with the columns "Name", "Surname", "Age" and "Gender", create as many rows as you want. Print out the result.


Firstly, my question is not Python related, but maths A-level related. I don't know how to change that in my profile but I would like to only tutor maths GCSE and potentially A-level. My question: Integrate sin(x)^3 over x=0 and x=pi/2.


Create an rock, paper, scissors game. The user should input one option, and the computer should play randomly.


We're here to help

contact us iconContact ustelephone icon+44 (0) 203 773 6020
Facebook logoInstagram logoLinkedIn logo

MyTutor is part of the IXL family of brands:

© 2025 by IXL Learning