使用随机函数(Python)

3 投票
4 回答
4135 浏览
提问于 2025-04-15 16:06

我在想,我们能在Python里做到这一点吗?假设我们有三个不同的函数来处理数据,像这样:

def main():
  def process(data):
     .....
  def process1(data):
     .....
  def process2(data):
     .....
  def run():
     test = choice([process,process1,process2])
     test(data)
  run()

main()

我们能随机选择一个函数来处理数据吗?如果可以,这样做合适吗?

谢谢!

4 个回答

1

只需要在Python中使用随机数模块就可以了。

random.choice(seq)

这样你就能从一系列的选项中随机得到一个项目。

http://docs.python.org/library/random.html

3

当然可以!

这就是Python的一个好处,函数被视为一等公民,可以非常简单地引用。

这意味着这三种方法在接收参数时有相同的要求。(这可能是显而易见的)。

4

这个方法很好(虽然你的示例代码有点过于简单)。既然你想要一个例子:

import random

def main():
  def process(data):
     return data + [0]
  def process1(data):
     return data + [9]
  def process2(data):
     return data + [7]
  def run(data):
     test = random.choice([process,process1,process2])
     print test(data)
  for i in range(7):
    run([1, 2, 3])

main()

我让它循环了7次,就是为了展示每次选择确实是随机的,也就是说,典型的输出可能是这样的:

[1, 2, 3, 7]
[1, 2, 3, 0]
[1, 2, 3, 0]
[1, 2, 3, 7]
[1, 2, 3, 0]
[1, 2, 3, 9]
[1, 2, 3, 9]

(当然,每次都会随机变化;-)。

撰写回答