I feel that the other answers do not give you what you exactly want, which is how to hack on things to make them behave the way you want to.
Since the dict class does not have an imul numeric type to deal with multiplication operation, we can simply create our own class which does that for us.
a = { 'first': None , 'second': None }
class MultDict:
def __mul__(self, other):
lst = []
for i in range(other):
lst.append(a.copy())
return lst
x = MultDict()
t = [ x * (4) for i in range(4)]
print(t)
t[0][0]['first']=2
print(t)
Output:
[[{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None}],
[{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None}],
[{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None}],
[{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None}]]
[[{'first': 2, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None}],
[{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None}],
[{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None}],
[{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None},
{'first': None, 'second': None}]]