Итеративная функция поиска цели требует упрощения для более быстрой программы - PullRequest
0 голосов
/ 14 июля 2020

Я работаю над некоторым кодом, который принимает два списка данных x_list и y_list, которые имеют заданное количество записей i.

Эти списки используются в вычислении цели для сбора переменная STW для count количества записей в двух списках.

Однако этот код не запускается (я предполагаю, потому что он слишком загружен процессором). Вот упрощенная версия кода:

top = []
mid = []
bot = []

i = 0
while True:
    goal_seek = 0
    while True:
        goal_seek_top = (x_list[i] * (y_list[i] * goal_seek)
            

        goal_seek += 0.001
        if goal_seek_top >= 1:
            top.append(goal_seek_top)

    goal_seek = 0
    while True:
        goal_seek_mid = (x_list[i] * (y_list[i] * goal_seek)
                           
        goal_seek += 0.001
        if goal_seek_mid >= 1:
            mid.append(goal_seek_mid)

    goal_seek = 0
    while True:
        goal_seek_bot = (x_list[i] * (y_list[i] * goal_seek) 

        goal_seek += 0.001
        if goal_seek_mid >= 1:
            bot.append(STW_bot)

    i += 1
    if i == count:
        break

Есть ли способ упростить этот код, чтобы он работал более плавно?

1 Ответ

0 голосов
/ 14 августа 2020

Это ответ на ваш вопрос?

top = []
mid = []
bot = []

i = 0
while True:
    global i
    goal_seek = 0
    goal_seek_top = (x_list[i] * (y_list[i] * goal_seek)
    goal_seek_mid = (x_list[i] * (y_list[i] * goal_seek)        
    goal_seek_bot = (x_list[i] * (y_list[i] * goal_seek)
    
    if goal_seek_top >= 1:
        top.append(goal_seek_top)
        break
    elif goal_seek_mid >= 1:
        mid.append(goal_seek_mid)
        break
    elif goal_seek_bot >= 1:
        bot.append(STW_bot)
        break
    else:
        goal_seek += 0.001
    
    # I dont know what i is doing so I suggest you change your break statement as given in the if statement above.
    i += 1
    if i == count:
        break
...