I have a doubt when i create a multidimentional array with None
element, i.e.
all elements are having same id but only elements of a single row are changed.
def array(a, b):
none = [None for _ in range(b)]
return [none for _ in range (a)]
So now arr = array(4, 5)
gives
[[None, None, None, None, None], [None, None, None, None, None], [None, None, None, None, None], [None, None, None, None, None]]
Now when I do arr[0][4] = 45
It gives
[[None, None, None, None, 45],
[None, None, None, None, 45],
[None,None, None, None, 45], [None, None, None, None, 45]]
Every 4th index value is changed to 45 So I tried
def id_array(a, b):
none = [id(None) for _ in range(b)]
return [none for _ in range (a)]
Now id_arr = id_array(4, 5)
[[138022184, 138022184, 138022184, 138022184, 138022184], [138022184, 138022184, 138022184, 138022184, 138022184], [138022184, 138022184, 138022184, 138022184, 138022184], [138022184, 138022184, 138022184, 138022184, 138022184]]
i.e. every value has same id
so while doing arr[0][4] = 45
shouldn't every value of arr change to 45 because everyone has same id
and why only 4th index of every row being changed.