Рассчитайте, сколько времени метод займет до конца sh? python - PullRequest
0 голосов
/ 25 апреля 2020

Я знаю, что это не конкретный c вопрос, но, допустим, у меня есть функция:

def compare(firstEntry, secondEntry):
  for element in firstEntry:
      for element2 in secondEntry:
            if(element<element2): 
                secondEntry.append(element)

Это только примерная функция, но я думаю, вы поняли мою проблему. В зависимости от того, насколько велики эти две записи, время исключения может сильно различаться. Итак, есть ли что-нибудь, что я мог бы сделать, чтобы рассчитать время исключения заранее и сказать пользователю, что он, вероятно, должен ждать, например, 10 секунд, 30 секунд, 2 минуты, ...?

Я не смог найти такой вопрос на этой платформе. Буду признателен за любую помощь. Спасибо: -)

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Прежде всего, не редактируйте один из параметров напрямую, это плохая практика. Вместо этого создайте новую переменную, которая будет возвращена, скажем, finalEntry.

Предполагая, что оба списка имеют одинаковую длину, это можно записать как более быструю, и в этом случае вам не нужно сообщать пользователю Время исполнения заранее.

def compare(firstEntry, secondEntry):
    finalEntry = secondEntry
    for i in range(len(firstEntry)):
        if firstEntry[i] < secondEntry[i]:
            finalEntry.append(firstEntry[i])
0 голосов
/ 25 апреля 2020

Если вы не хотите тратить слишком много времени на эту задачу, вот что я бы сделал.

Первое вычисление T, то есть сколько времени требуется для выполнения compare(firstEntry,secondEntry), если firstEntry и secondEntry - это списки, каждый из которых содержит один элемент. Допустим, T = 0.1 секунд. Тогда я бы напечатал что-то вроде этого.

T = 0.1
estimated = T * len(firstEntry) * len(secondEntry)
print("This might take %f seconds"%estimated)

Я умножаю длины списков, потому что у вас есть вложенный l oop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...