Oct-28-2018, 09:52 PM
(This post was last modified: Oct-28-2018, 10:04 PM by ichabod801.)
Dear all,
I have an issue when I want to update the content of lists. I have two loops, a for loop where I initiate two lists and an inner while loop where I filled up the lists. During the first iteration of the external for loop, it works fine, then during the second iteration, the lists in the inner while loop are empty.
I am attaching the code related to the issue, the lists are listOfResultsCCD and listOfResultsDetector. The tow lists are filled up calling two external functions found in user module. I cannot upload all the code because of its size.
The error message is the following:
$ python main.py
Number of samples 0
CCD+Detector: Iter: 26, Er: 9.1e-06
Number of samples 1
CCD+Detector: Iter: 0, Er: 9.1e-06
Traceback (most recent call last):
File "main.py", line 244, in <module>
listTcc.append(listOfResultsDetector[-6])
IndexError: list index out of range
The list at the second iteration is actually empty [].
Here is the piece of code.
Ftrillaudp
I have an issue when I want to update the content of lists. I have two loops, a for loop where I initiate two lists and an inner while loop where I filled up the lists. During the first iteration of the external for loop, it works fine, then during the second iteration, the lists in the inner while loop are empty.
I am attaching the code related to the issue, the lists are listOfResultsCCD and listOfResultsDetector. The tow lists are filled up calling two external functions found in user module. I cannot upload all the code because of its size.
The error message is the following:
$ python main.py
Number of samples 0
CCD+Detector: Iter: 26, Er: 9.1e-06
Number of samples 1
CCD+Detector: Iter: 0, Er: 9.1e-06
Traceback (most recent call last):
File "main.py", line 244, in <module>
listTcc.append(listOfResultsDetector[-6])
IndexError: list index out of range
The list at the second iteration is actually empty [].
Here is the piece of code.
### MAIN ### listTcc = list() listTcf3 = list() listTcf2 = list() listTcf1 = list() listTbx0 = list() listQdetector = list() listTfl = list() listTsb = list() listTccd = list() listQccdPackage = list() er = 100; epsi = 0.00001; iter_max = 1000; for i in range(0,numberOfSamples-1): Para_ccd[1] = Wccdsb[i] Para_ccd[2] = Wsbfl[i] Para_ccd[3] = Wflsp[i] Para_ccd[4] = Wsbsp[i] Para_ccd[5] = Wspbx[i] Para_det[5] = Wbx0cf1[i] Para_det[6] = Wcf3cc[i] print("Number of samples", i) count = 0 Tbx = Para[16] ### Initial value of T_bx # lists not updated during second iteration of for loop listOfResultsCCD = list() # reinitialization every "for" iteration listOfResultsDetector = list() # reinitialization every "for" iteration while ((er > epsi) and (count < iter_max)): Tbx_old = Tbx Para_ccd[-1] = Tbx listOfResultsCCD= ccdPackagesModule.func_CCDPackage(Para_ccd) Tsp = listOfResultsCCD[-4] Para_det[-1] = Tsp listOfResultsDetector = detectorModule.func_detector(Para_det) Tbx = listOfResultsDetector[-2] er = abs((Tbx-Tbx_old)/Tbx_old) count = count+1 #print("\n***************************************") #print("Main loop: CCD and detector") #print("CCD+Detector: Iter: {:2d}, Er: {:1.2g}".format(count, er)) print("CCD+Detector: Iter: {:2d}, Er: {:1.2g}".format(count, er)) listTcc.append(listOfResultsDetector[-6]) listTcf3.append(listOfResultsDetector[-5]) listTcf2.append(listOfResultsDetector[-4]) listTcf1.append(listOfResultsDetector[-3]) listTbx0.append(listOfResultsDetector[-2]) listQdetector.append(listOfResultsDetector[-1]) listTfl.append(listOfResultsCCD[-4]) listTsb.append(listOfResultsCCD[-3]) listTccd.append(listOfResultsCCD[-2]) listQccdPackage.append(listOfResultsCCD[-1])Best regards,
Ftrillaudp