Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在随机选择函数中选择这两个实例?_Python - Fatal编程技术网

Python 如何在随机选择函数中选择这两个实例?

Python 如何在随机选择函数中选择这两个实例?,python,Python,我可能看起来不清楚,但这是我想要的,我想在random.choice函数中使用这两个实例 下面是代码: B = True C = True x = random.choice([B, C]) d = ? 一旦(x)被选中,我希望(d)保留剩余的选项,因此假设(x)是(B),我希望(d)保留(C)。假设您的意思是无法让函数直接返回剩余的项 对2个元素执行此操作的简单方法如下 import numpy choices = (B, C) i = numpy.random.choice((0, 1))

我可能看起来不清楚,但这是我想要的,我想在random.choice函数中使用这两个实例

下面是代码:

B = True
C = True
x = random.choice([B, C])
d = ?
一旦(x)被选中,我希望(d)保留剩余的选项,因此假设(x)是(B),我希望(d)保留(C)。

假设您的意思是无法让函数直接返回剩余的项

对2个元素执行此操作的简单方法如下

import numpy
choices = (B, C)
i = numpy.random.choice((0, 1))
chosen = choices[i]
leftover = choices[1 - i]

随机。样本([B,C],2)
将随机返回
[B,C]
[C,B]
,然后我们使用元组解包。

您可能需要更多不同的数据,以便我们提供答案。按原样,B/C/D/X都有相同的ID,因为它们都指向True。b/c/d/x只是True的标签,所以变量中并没有任何东西使它们不同。我正在做一个游戏,目前它们都是True,但我将使用if语句将它们的值更改为false。请注意,如果在两个选项之间进行统一选择,也就是说,每个人都有50%的被选中的机会——随机选择一个,随机选择一个,然后再选择另一个是相同的操作。在每种情况下,两种选择中的每一种都有50%的机会被选中。因此,如果您不需要
x
而只需要
d
random.choice()
实际上就足够了。为什么numpy.random.choice((0,1))有两个括号?@ruthres:括号内的一组表示a,在本例中表示一个间隔。@ruthres因为我们需要将一个选项元组作为单个参数传递,不是两个参数0,1-事实上,如果删除第二对括号,您将得到一个ValueError
x, d = random.sample([B, C], 2)