Хорошо ситуация, в которой пустой список не должен возникать.Но следите за тем, что вы ожидаете, если то, что вы сказали в своем комментарии, верно.Например:
elow = 2
ehigh = 900
stepsize = 2
fp1 = []
energy = [1, 2, 3]
for e0 in energy:
for i in range(elow, ehigh, stepsize):
fp1 = numpy.append(fp1, 15)
fp1
array([ 15., 15., 15., ..., 15., 15., 15.])
len(fp1)
1347
Как видите, вы не получите массив такой же длины энергии.Это потому, что range(2, 900, 2)
сгенерировал список, начиная с 2 -> 898 (449 элементов).Это генерируется для каждого элемента энергии, и результат ваших вычислений будет добавлен к fp1, таким образом, вы должны получить 449 * 3 = 1347 элементов в результате.
Я действительно не вижу никакой ситуации, в которой вы быполучить пустой список в качестве результата, отличного от:
elow >= ehigh
energy = []
stepsize < 0
Поэтому мой совет будет сделать печать / отладку всех этих значений прямо перед циклами, и, возможно, попытаться лучше объяснить, чего вы хотите достичь, потому чтокак я уже сказал, даже если это сработает, вы не получите вывод той же длины, что и energy
, а скорее length = len(energy) * 449