如何将具有不同数量参数的函数组合在一起
how to group together functions with different number of parameters
我想在一个循环中组合不同的搜索算法。但是,我不知道如何包含具有不同参数数量的算法。循环是这样的:
search_algorithms = [linearSearch, jumpSearch, exponentialSearch]
for i in range(len(search_algorithms)):
start = default_timer()
result = search_algorithms[i](arr, len(arr), target)
end = default_timer()
time = timedelta(seconds=end-start)
print("{}".format(search_algorithms[i].__name__))
print("Target element is present at index", result)
print("Searching executed in {} seconds \n".format(time))
是否有一些简单的方法来包含例如定义为 def binarySearch(arr, l, r, x):
的二进制搜索?非常感谢。
您可以将元组列表存储在 search_algorithms
中,其中第一个元素是函数,第二个元素是参数列表。
search_algorithms = [
(linearSearch, [arg1, arg2]),
(jumpSearch, [arg1]),
(exponentialSearch, [arg1, arg2, arg3]),
]
for fn, args in search_algorithms:
fn(*args)
我想在一个循环中组合不同的搜索算法。但是,我不知道如何包含具有不同参数数量的算法。循环是这样的:
search_algorithms = [linearSearch, jumpSearch, exponentialSearch]
for i in range(len(search_algorithms)):
start = default_timer()
result = search_algorithms[i](arr, len(arr), target)
end = default_timer()
time = timedelta(seconds=end-start)
print("{}".format(search_algorithms[i].__name__))
print("Target element is present at index", result)
print("Searching executed in {} seconds \n".format(time))
是否有一些简单的方法来包含例如定义为 def binarySearch(arr, l, r, x):
的二进制搜索?非常感谢。
您可以将元组列表存储在 search_algorithms
中,其中第一个元素是函数,第二个元素是参数列表。
search_algorithms = [
(linearSearch, [arg1, arg2]),
(jumpSearch, [arg1]),
(exponentialSearch, [arg1, arg2, arg3]),
]
for fn, args in search_algorithms:
fn(*args)