I am building a small program for mass point distribution. With this loop, I am iterating an element smallest
throughout the mass_distr
list.
I have tried different approaches to this iteration from here. They all give the same result. For coding, I am using Jupyter Notebook and have restarted the kernel many times.
I am confused with how can some elements from previous iterations remain in new iteration list mass_distr_i
when it is copied over every iteration.
for i in range(len(mass_distr)): #Iterate smallest element throughout the list of mass
mass_distr_i = mass_distr[:] #Position of mass points for i-th iteration
#mass_distr_i = mass_distr[:i] + [smallest] + mass_distr[i:]
print(mass_distr_i, "before insert mass_distr_i")
mass_distr_i.insert(i,smallest)
#print(mass_distr_i.insert(i,smallest))
print(mass_distr_i, "mass_distr_i")
print(len(mass_distr_i))
res = tezisce(mass_distr_i)
CG = res[0] #Center of gravity in x and y for i-th iteration
opt_pos_i = res[1]
#print(opt_pos_i, " opt_pos_i")
abs_dist_CG = np.sqrt(CG[0]**2+CG[1]**2) #Distance of CG from center
#print(abs_dist_CG)
if abs_dist_CG < min_CG:
min_CG = abs_dist_CG #Minimal distance of CG from center
CG_xy = CG #coord. for min_CG
opt_pos = opt_pos_i #x and y coord. for mass points for min CG distribution
mass_distr = mass_distr_i #Order of mass points for min CG distribution
Numbers 15, 16, 17 and 18 are lengths of mass_distr_i
and should be allways 15 for this case.
And the result:
[1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] mass_distr_i
15
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] mass_distr_i
16
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1.0, 1, 2.0, 3.0, 4.0, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] mass_distr_i
16
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1.0, 2.0, 1, 3.0, 4.0, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] mass_distr_i
16
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1.0, 2.0, 3.0, 1, 4.0, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] mass_distr_i
16
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1.0, 2.0, 3.0, 4.0, 1, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] mass_distr_i
16
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 1, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] mass_distr_i
16
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 1, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] mass_distr_i
16
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 1, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 1, 1, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] mass_distr_i
17
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 1, 7.6, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 1, 7.6, 1, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] mass_distr_i
17
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 1, 7.6, 1, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 1, 7.6, 1, 1, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] mass_distr_i
18
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 1, 7.6, 1, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 1, 7.6, 1, 2.0, 1, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] mass_distr_i
18
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 1, 7.6, 1, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 1, 7.6, 1, 2.0, 3.0, 1, 3.3, 4.0, 5.0, 6.0, 8.0] mass_distr_i
18
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 1, 7.6, 1, 2.0, 3.0, 3.3, 4.0, 5.0, 6.0, 8.0] before insert mass_distr_i
[1, 1.0, 2.0, 3.0, 4.0, 4.7, 5.6, 1, 7.6, 1, 2.0, 3.0, 3.3, 1, 4.0, 5.0, 6.0, 8.0] mass_distr_i
18