Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python按一定顺序从列表中调用函数_Python_Function - Fatal编程技术网

Python按一定顺序从列表中调用函数

Python按一定顺序从列表中调用函数,python,function,Python,Function,我举了以下例子: def func1():return 1 def func2():return 2 def func3():return 3 fl = [func1,func2,func3] 我想按一定的顺序调用函数;比如说 func1(),然后是func2(),最后是func3() 或 func2(),然后是func1(),最后是func3() 这是怎么发生的呢?指定所需的索引,并对其进行迭代。请注意,Python中的列表索引是零索引的 def func1():return 1

我举了以下例子:

def func1():return 1
def func2():return 2
def func3():return 3

fl = [func1,func2,func3]
我想按一定的顺序调用函数;比如说

  • func1(),然后是func2(),最后是func3()

  • func2(),然后是func1(),最后是func3()

这是怎么发生的呢?

指定所需的索引,并对其进行迭代。请注意,Python中的列表索引是零索引的

def func1():return 1
def func2():return 2
def func3():return 3

fl = [func1,func2,func3]
indices = [0,1,2,1,0,2]
for i in indices:
    fl[i]()

不要将函数放在列表中。改用python程序

如果你真的想让汤姆看看清单就行了

for f in [func1, func2, func3]:
    f()

什么决定了顺序?只需在列表中循环,调用每个函数:
[f()代表f in fl()]
[fl[i]()代表i in order]
其中
顺序=[2,1,3]
etc@Aran-Fey,它是关于函数调用的年表,第一个func1()…最后一个func3()或任何选定的order@loved_by_Jesus我的坏,0索引,
order=[1,0,2]
“不要将函数放在列表中”两个示例中的哪一个以任意顺序调用函数?我从另一个模块以列表形式导入,这就是为什么第一个方法没有。你已经把订单硬编码了。脚本自上而下运行,顺序是固定的。如果这些函数位于列表或字典中,则可以根据一些动态输入以任何顺序执行任意次数的函数。我认为不将函数放在某个容器中的说明是不正确的。或者,澄清一下,有很好的理由将函数放在列表中。我并不是说这是所有情况下的最佳方式,但在一般情况下不应排除这种可能性。我无意中撞到了enter,这正是我要采用的方法suggest@RafaelC,我更新了答案。谢谢你指出这一点!有一个函数列表和一个索引列表有什么意义?其中一个是多余的。那么他可以做:
[eval('func{}()'.format(i))for i in index]
@Aran Fey,我用我对OP意图的最佳解释来回答这个问题,即他有一个固定的函数列表,并希望迭代它们。
for f in [func1, func2, func3]:
    f()