I am using python-3.x and I have tow loops first one which is number of runs (3 times) the second one to generate solutions (2 times)
what I want to do is: Collect the best solution from the second loop and append it to an array or list. The next run which is the first loop will run the second loop again, and it will collect the best solution from the second loop and append it to the same array or list. Which I will have two solutions in each run the total will be six solutions.
the problem is: I want to append the "best solution" to same index location for the next run.
in my case, the array will end up with a size of 6, but I want it to be a size of 3 where each index will include two values (best solution)
run 1: result inside the array: index 0 "The first best solution." index 1 "The second best solution."
run 2: result inside the array: index 0 "The first best solution." "The first best solution."
index 1 "The second best solution." "The second best solution."
If you take a look at the code and the result it will be more clear what I am trying to do? any advice or help you could provide would be much appreciated
import matplotlib.pyplot as plt
import math
import random
import numpy as np
import pylab
from numpy import median
import os
import subprocess as sp
run = 3
best_solutions = [np.empty(0)]
del best_solutions[0]
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
for i in range (run):
lower = 300
upper = 500
number_of_solutions = 50
generate_solutions = 2
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
for ii in range (generate_solutions):
list_of_solutions = np.random.uniform(lower, upper, number_of_solutions)
best_solutions.append(min(list_of_solutions))
lower = lower - 30.4323434
upper = upper - 90.634555
del (number_of_solutions)
del (lower)
to make it more clear....
if the (i) = 0 if the (ii) = 0 the min(solution) from this loop will be stored in best_solutions in the index 0 if the (ii) = 1 the min(solution) from this loop will be stored in best_solutions in the index 1 if the (ii) = 2 the min(solution) from this loop will be stored in best_solutions in the index 2 and so on......
second run: if the (i) = 1 if the (ii) = 0 the min(solution) from this loop will be stored in best_solutions in the index 0 if the (ii) = 1 the min(solution) from this loop will be stored in best_solutions in the index 1 if the (ii) = 2 the min(solution) from this loop will be stored in best_solutions in the index 2 and so on......
I hope this will clarify what I want to do!!
I tried to store them by index but it gives me an error:
IndexError: list index out of range !!!????
better work on nested list like [[1st best answer,1st best answer],[..,..]...] so you should define an other list in the second run . then append it to the result list . here's the modified code:
Finally, I find the best way to solve my problem, this the final code that I wrote:
where the last loop will do the job :) thanks for every one for giving ideas and advises