У меня есть несколько функций для создания списка в диапазоне. Я использую функцию времени, которую я написал, но она не измеряет время функций списка, которые я ввожу. Мои функции списка возвращают созданный список в настоящее время. И ошибка говорит мне, что когда я использую time_it(), этот результат не может пройти.
# one of my list functions
def for_list(x):
x = range(x)
list_1 = []
for i in x:
i = str(i)
list_1 += i
return list_1
# timing function
def time_limit(tx):
start_time = process_time()
tx()
end_time = process_time()
time = (end_time - start_time)
print(f'{tx.__name__}, {time:.15f}')
SIZE = 10000
time_limit(for_list(SIZE))
Я должен вернуть что-то по-другому или мой time_limit() неверен?
traceback (most recent call last): File "C:\Users\Naja\PycharmProjects\pythonProject1\HW#4\1.py", line 46, in <module> time_limit(for_list(SIZE)) File "C:\Users\Naja\PycharmProjects\pythonProject1\HW#4\1.py", line 37, in time_limit tx() TypeError: 'list' object is not callable
Когда я запускаю только функцию списка, она работает нормально и печатает нормально. Может ошибка в другом? Трудно сказать из-за того, что у меня мало информации.
Да, все мои функции списка, которые я написал, работают нормально. Мне просто нужно время выполнения с помощью time_limit().
возможно, удалите tx() внутри time_limit. Вы вызываете функцию дважды и вызываете возвращаемое значение функции в этой строке. Вот что вызывает ошибку.
Ах, это сработало.
Я сделал это ответом.
Внутри функции time_limit()
вы дважды вызываете список for.
Он вызывается один раз при прохождении и снова вызывается в строке tx()
.
При удалении этой строки это должно выглядеть так:
# one of my list functions
def for_list(x):
x = range(x)
list_1 = []
for i in x:
i = str(i)
list_1 += i
return list_1
# timing function
def time_limit(tx):
start_time = process_time()
end_time = process_time()
time = (end_time - start_time)
print(f'{tx.__name__}, {time:.15f}')
SIZE = 10000
time_limit(for_list(SIZE))
Можете ли вы вставить ошибку? В какой строке кода ошибка?