I need help understanding the results I got when I assigned an array to a key of a dictionary, then I modified the key and the array got modified as well:
A = numpy.zeros((2,2))
a = 0
my_dict = {'key1':matrix([]), 'key2':0}
my_list = list()
for i in range(0,2):
my_dict['key1'] = A[i,:]
my_dict['key2'] = a
my_list.append(my_dict)
my_list[i]['key1'][0] = i+1
my_list[i]['key2'] = i+1
print(my_list)
[{'key2': 2, 'key1': array([ 2., 0.])}, {'key2': 2, 'key1': array([ 2., 0.])}]
print(A)
[[ 1. 0.] [ 2. 0.]]
print(a)
0
First: why did A
get modified and a
didn't?
Second: why do I need to write my_dict = {'key1':matrix([]), 'key2':0}
at the end of the for
loop in order to obtain
[{'key2': 1, 'key1': array([ 1., 0.])}, {'key2': 2, 'key1': array([ 2., 0.])}]
I'm a beginner to Python but this doesn't seem very straightforward to me.