nexando valores a uma matriz dentro de um objeto (fazendo um loop sobre objeto

Esta é uma versão organizada doist pergunta. Desde que mudei muito, fiz uma nova pergunta

Estou tentando tirar certos valores de uma matriz mais longasolution e coloque-os em uma matriz menor, dentro de um objeto. Este código deve levar a primeira metade dosolution array e coloque-o emx_hist dentro dem1 e a segunda metade dosolution array e coloque-o emx_hist dentro dem2. Em vez disso, parece ter todos ossolution array e coloque-o emx_hist para ambos os objetos. Alguém sabe por que isso pode ser o caso? Vectorizei acidentalmente o código?

class Mass:
    x_hist = []

m1 = Mass()
m2 = Mass()
ms = [m1,m2]

solution = [1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0]

for i in range(len(ms)):
    for k in range(int(len(sol)/len(ms))):
        ms[i].x_hist.append(solution[k+8*i])

print(m1.x_hist)
print(m2.x_hist)

A saída é:

[1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0]

Estou tentando obter uma saída de:

[1, 2, 3, 4, 5, 6, 7, 8]
[0, 0, 0, 0, 0, 0, 0, 0]

questionAnswers(3)

yourAnswerToTheQuestion