2

Python中有没有办法以随机顺序做事?假设我想运行function1(), function2(), and function3(),但不一定按这个顺序运行,可以这样做吗?显而易见的答案是创建一个列表并随机选择它们,但是如何从列表中获取函数名称并实际运行它呢?

4

1 回答 1

15

这实际上很简单。Python 函数只是对象,碰巧是可调用的。因此,您可以将它们存储在一个列表中,然后使用调用运算符 ( ()) 调用它们。

制作你的函数列表,用 打乱它们random.shuffle(),然后循环调用它们。

to_call = [function1, function2, function3]
random.shuffle(to_call)
for f in to_call:
    f()

如果您想存储返回的值,可以将它们添加到列表中,这将为列表理解提供一个很好的案例:

returned_values = [f() for f in to_call]
于 2013-05-27T15:42:18.943 回答