Как создать массив функций Python?
array1 = []
for i in range(10):
array1.append(timeit.timeit("method1()", globals=globals(), number=10) / 10)
array2 = []
for i in range(10):
array2.append(timeit.timeit("method2()", globals=globals(), number=10) / 10)
Как в данном коде создать массив функций method1(), method2(), чтобы можно было использовать только 1 for (ну и соответственно, 1 append)?
Уточню вопрос - можно ли написать что-то подобное:
function_array = [method1(), method2()]
array1 = []
for i in range(10):
array1.append(timeit.timeit("function_array[0]", globals=globals(), number=10) / 10)
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Если я правильно понял вопрос:
array1 = []
for method in ['method1()', 'method2()']:
for i in range(10):
array1.append(timeit.timeit(method, globals=globals(), number=10) / 10)
Если нужно размещать результаты всё же в разные списки, то можно, к примеру, так:
from collections import defaultdict
arrays = defaultdict(list)
for method in ['method1()', 'method2()']:
for i in range(10):
arrays[method].append(timeit.timeit(method, globals=globals(), number=10) / 10)
Автор решения: TigerTV.ru
→ Ссылка
Можно
import timeit
def func1():
print("1")
def func2():
print("2")
mlist = [func1, func2]
array1 = [timeit.timeit(mlist[0], globals=globals(), number=10) / 10 for i in range(10)]