首页 > 解决方案 > 将函数列表应用于python中的参数列表

问题描述

我有以下列表

fncs = ["MyLinkedList","addAtHead","get","addAtTail"]
args = [[],[8],[1],[81]]

我想回来

[MyLinkedList(), addAtHead(8), get(1), addAtTail(81)]

我以为我可以使用fnc_vals = [f(x) for f, x in zip(fncs, args)],但这似乎不起作用,因为我的 fncs 列表是一个字符串列表。如何将函数列表应用于参数列表(在 Python 中)?

标签: python

解决方案


如果函数在本地命名空间中,只需删除引号:

fncs = [MyLinkedList, addAtHead, get, addAtTail]
args = [[], [8], [1], [81]]

如果第一个列表必须是字符串,您可以通过以下方式获取函数对象:

function_names = ["MyLinkedList", "addAtHead", "get", "addAtTail"]
functions = [locals()[fn] for fn in function_names]

如果,即函数在本地命名空间中命名。


推荐阅读