繁体   English   中英

如何将具有不同数量参数的函数组合在一起

[英]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中,其中第一个元素是 function,第二个元素是 arguments 列表。

search_algorithms = [
    (linearSearch, [arg1, arg2]),
    (jumpSearch, [arg1]),
    (exponentialSearch, [arg1, arg2, arg3]),
]

for fn, args in search_algorithms:
    fn(*args)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM