Reputation: 33
I have this code:
list = [[1,2],[4,5]]
list1 = list.copy()
for i in range(len(list)):
for j in range(len(list[i])):
print(i, j, ":", list[i][j], "and", j, i, ":", list1[j][i])
nr = input('Line {0}, Column{1}: '.format(i+1, j+1))
list[i][j] = nr
list1[j][i] = nr
print(list, list1)
print(list1, list)
I want the final result of the variable list
to be the following matrix: [[1,2],[3,4]]
, so the variable list1
should be the transposed matrix: [[1,3],[2,4]]
. Somehow the result is this: [['1', '3'], ['3', '4']] [['1', '3'], ['3', '4']]
.
Upvotes: 0
Views: 1356
Reputation: 2563
you should use copy.deepcopy
.
If your list were a list of integers or floats, .copy()
would suffice, but since you have a list of lists, you need to recursively copy the elements inside the lists.
You can find more detailed answer here: What is the difference between shallow copy, deepcopy and normal assignment operation?
Upvotes: 1