按随机顺序做事?

时间:2013-05-27 15:41:10

标签: python random

Python中有什么方法可以按随机顺序执行操作吗?说我想运行function1()function2()function3(),但不是必须按顺序运行,可以这样做吗?显而易见的答案是制作一个列表并随机选择它们,但是如何从列表中获取函数名称并实际运行它?

1 个答案:

答案 0 :(得分:15)

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

制作你的功能列表,用random.shuffle()对它们进行随机播放,然后循环调用它们。

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

如果您想存储返回的值,可以将它们添加到列表中,这样就可以为list comprehension提供良好的理由:

returned_values = [f() for f in to_call]