是在Python中从列表中进行随机选择时加载的所有方法的值吗?

问题描述 投票:0回答:2

我正在尝试从一堆方法中做出随机选择的最有效方法,这些方法从Python中这些方法中的列表中返回随机值。

import random

def list1():
    list1 = ['apple', 'orange', 'banana']
    return random.choice(list1)

def list2():
    list2 = ['tomato', 'cauliflower', 'potato']
    return random.choice(list2)

def list3():
    list3 = ['milk', 'juice', 'water']
    return random.choice(list3)

def return_random():
    array_of_random = [list1(), list2(), list3()]
    return random.choice(array_of_random)

random_word = return_random()
print(random_word)

def return_random_modified():
    array_of_random2 = ['a', 'b', 'c']
    random_choice2 = random.choice(array_of_random2)
    if (random_choice2 == 'a'):
        return list1()
    if (random_choice2 == 'b'):
        return list2()
    if (random_choice2 == 'c'):
        return list3()

random_word2 = return_random_modified()
print(random_word2)
  1. 如果我使用return_random()方法,则将方法list1(),list2()和list3()返回的所有值都加载到array_of_random变量上,或者仅加载random.choice()选择的方法返回的值在变量array_of_random上?
  2. 如果问题1的答案为是,那么return_random_modified()是执行此操作的更好方法,还是还有另一种更好的方法?
  3. 最终,我打算使用这种策略来进行随机API调用以获取随机数据,因此我不想最终对所有外部API进行调用并做出随机选择。我宁愿只调用一个随机API。

谢谢您!

python python-3.x list
2个回答
0
投票

是,return_random确实执行list1list2list3方法,因为它们上面有()

通过移动调用括号将函数references >>传递到array_of_random列表,然后then调用该随机函数来解决此问题:

def return_random():
    array_of_random = [list1, list2, list3]
    return random.choice(array_of_random)()

0
投票

您具有N功能,并希望避免评估未选择的N - 1功能。好。

© www.soinside.com 2019 - 2024. All rights reserved.