У меня есть спектры длин волн как список и некоторое количество других списков, которые я использую в формуле (используя tmm.tmm_core). Есть ли что-то более эффективное, чем повторение длины волны, если я просто в основном делаю то же самое для всех длин волн? Пример Функции вызова в списках
def go(n, thk, theta):
#do stuff
return(something)
wv = [1, 2, 3, 4]
a_vec = [3, 7, 3, 9]
b_vec = [6, 5, 9, 3]
c_vec = [0, 1, 8, 9]
theta = 0
th = [10, 1, 10]
final = []
for i in range(len(wv)):
n = [a[i], b[i], c[i]]
answer = go(n, th, theta)
final.append(answer)
в действительности есть, может быть, 5000-10000 строки. Кажется, что немного отстает, когда я нажимаю, и я предполагаю, что это из-за итерации. Довольно новая для оптимизации, поэтому я не использовал никаких инструментов бенчмаркинга или чего-то еще.
Итерация через «диапазон» вообще не стоит дорого. Возможно, понимание списка будет быстрее, чем добавление в список постоянно, но, вероятно, большая часть причин, по которым он медленный, объясняется тем, что делает 'go'. Попробуйте [profiling] (https://docs.python.org/2/library/hotshot.html) свой код, чтобы узнать, что происходит на самом деле. – Claudiu
На ваш вопрос ответили? –