我想用随机顺序运行函数。它看起来像“shuffle”函数,它会改变变量列表。
输入:
a
c
b
这是我想要的输出:
c
b
a
或
{{1}}
或
{{1}}
等 如何以随机顺序运行函数?
答案 0 :(得分:5)
random.shuffle
是一个就地操作。因此,您需要单独保留列表并将其随机播放。
functions = [a, b, c]
shuffle(functions)
现在,函数被洗牌,您只需要执行它们
for func in functions:
func()
你可以将它存储在一个函数中并像这样执行
def run_functions_in_random_order(*funcs):
functions = list(funcs)
shuffle(functions)
for func in functions:
func()
run_functions_in_random_order(a, b, c)
或者你可以简单地使用闭包中的函数,比如这个
def run_functions_in_random_order(*funcs):
def run():
functions = list(funcs)
shuffle(functions)
for func in functions:
func()
return run
random_exec = run_functions_in_random_order(a, b, c)
random_exec()
random_exec()
random_exec()
答案 1 :(得分:1)
或制作一份清单并随机选择:
import random
def a():
print('a')
def b():
print('b')
def c():
print('c')
my_list = [a, b, c]
random.choice(my_list)()
答案 2 :(得分:1)
我将如何做。基本上 thefourtheye 建议了什么。 Run this Code
from random import shuffle
def a():
print('a')
def b():
print('b')
def c():
print('c')
def main():
lis = [a,b,c]
shuffle(lis)
for i in lis:
i()