Here just some test,so can you think of we they are different.
>>> lst_1 = [[1,2,3]] * 3 >>> lst_2 = [[1,2,3] for i in range(3)] >>> lst_1 [[1, 2, 3], [1, 2, 3], [1, 2, 3]] >>> lst_2 [[1, 2, 3], [1, 2, 3], [1, 2, 3]] >>> >>> lst_1[0].append(4) >>> lst_2[0].append(4) >>> lst_1 [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]] >>> lst_2 [[1, 2, 3, 4], [1, 2, 3], [1, 2, 3]] >>> >>> [id(i) for i in lst_1] [23028560, 23028560, 23028560] >>> [id(i) for i in lst_2] [65702968, 65711560, 65708120] >>> >>> help(id) Help on built-in function id in module builtins: id(obj, /) Return the identity of an object. This is guaranteed to be unique among simultaneously existing objects. (CPython uses the object's memory address.)