I want to copy list values to another list because I modify the original one and use the new one. Bu t whatever I try it will alwasy assign reference not value.
class Chromosome:
def __init__(self):
self.matrix = [[0 for x in range(LENGTH)] for y in range(LENGTH)]
class Population:
def __init__(self, start):
self.start = start
self.chromosomes = []
def crossover(self):
for index in range(0, POPULATION_SIZE - 1, 2):
swap_point = random.randint(7, 10)
matrix1 = self.chromosomes[index].matrix
matrix2 = self.chromosomes[index + 1].matrix
self.chromosomes[index].crossover(matrix2, swap_point)
self.chromosomes[index + 1].crossover(matrix1, swap_point)
The following lines is that ı wan to assign values not reference
matrix1 = self.chromosomes[index].matrix[:]
and
matrix2 = self.chromosomes[index + 1].matrix[:]
I tried followings
list(self.chromosomes[index + 1].matrix)
self.chromosomes[index + 1].matrix[:]
self.chromosomes[index + 1].matrix.copy()
How can I get values of the chromosome to matrix1 and matrix2?