如何在python中的几个可用函数中随机重复10次?

2024-10-01 07:13:33 发布

您现在位置:Python中文网/ 问答频道 /正文

对于多个功能:ftn_1、ftn_2、。。。,ftnk公司 我想在上面随机重复10次。 (整个时间是k^10。)

我发现一些函数是这样的,但它似乎只对字符串起作用:itertools.产品你知道吗

def ftn1():
   ...
def ftn2():
   ...
x=0;
itertools.product(x=ftn1(x), x=ftn2(x), .., x=ftnk(x), [repeat=10])

我想做类似的上面,找到所有情况下的最小值。你知道吗


Tags: 函数字符串功能产品def时间情况公司
2条回答

您只需创建一个包含所有函数的列表(或元组),然后对其使用random,例如:

import random

funcs = [ftn1, ftn2, ftn3, ..., ftnN]
my_func = random.choice(funcs)

然后您可以使用您选择的任何参数调用my_func。你知道吗

如果你的意思是你有k个函数,并且想要总共调用它们10次,但顺序是随机的,那么你可以shuffle()列出它们。
出于理智的考虑,这个例子有3个函数,调用它们2次。也为所有人提供了一个参数,只是写出来了:

import random

def f1(x):
  print("f1:"+str(x))
def f2(x):
  print("f2:"+str(x))
def f3(x):
  print("f3:"+str(x))
# here you could have more functions...

repeats=[f1,f2,f3]*2 # ... and they could be listed here, and 2 could be 10
print("Default order:")
for i in range(len(repeats)):
  repeats[i](i) # repeats[i] is a function here, which is invoked with i

random.shuffle(repeats)
print("Shuffled order:")
for i in range(len(repeats)):
  repeats[i](i)

示例输出(当然,它因随机性而变化)

Default order:
f1:0
f2:1
f3:2
f1:3
f2:4
f3:5
Shuffled order:
f3:0
f1:1
f1:2
f2:3
f2:4
f3:5

虽然它们的数目不是3^2,而是3*2。你知道吗

相关问题 更多 >