Here is an example for the use of deepcopy with a nested list. First without ...
# a nested list
list1 = ['a', 'b', 'c', 'd', [1, 2, 3]]
list2 = [x for x in list1]
# now replace 2 with 77 in list1
list1[4][1] = 77
print(list1) # ['a', 'b', 'c', 'd', [1, 77, 3]]
print(list2) # ['a', 'b', 'c', 'd', [1, 77, 3]] oops!!!
now with ...
import copy
# a nested list
list1 = ['a', 'b', 'c', 'd', [1, 2, 3]]
list2 = copy.deepcopy(list1)
# now replace 2 with 77 in list1
list1[4][1] = 77
print(list1) # ['a', 'b', 'c', 'd', [1, 77, 3]]
print(list2) # ['a', 'b', 'c', 'd', [1, 2, 3]] okay!!!
In the first example the list comprehension simply copied the inner list as an alias list which shares the memory reference.