При выполнении append все элементы списка заменяются на последний элемент.
Не могу понять где косяк, может незамыленный взгляд и опыт распознает ошибку:
popul = [] for x in range(popsize): element = mutate(query_vector, one_zero) print x, element popul.append(element) def mutate(vec, correction): #print query_phrase new_vec = vec n_vec = random.randint(0, len(vec)-1) #print n_vec, n_gram if correction[n_vec] == 0: n_gram = random.randint(0, len(filtred_vectors)-1) new_vec[n_vec] = (n_vec, vectors[n_gram][1]) return new_vec
UPD: это может быть связано с оперативкой?