Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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集中随机选取2个项目?_Python_Random - Fatal编程技术网

如何从Python集中随机选取2个项目?

如何从Python集中随机选取2个项目?,python,random,Python,Random,我目前有一个大小为n的Python集,其中n>=0。有没有一个快速的1行或2行Python解决方案可以做到这一点?例如,该集看起来像: fruits = set(['apple', 'orange', 'watermelon', 'grape']) 目标是从上面随机选取2个项目,上面的集合可能包含0个、1个或更多项目。我能想到的执行上述操作的唯一方法是将集合转换为列表(可变),从中我可以访问集合长度内的2个随机唯一索引。使用随机模块: 这将在不替换的情况下对两个值进行采样(因此这两个值不同)。

我目前有一个大小为n的Python集,其中n>=0。有没有一个快速的1行或2行Python解决方案可以做到这一点?例如,该集看起来像:

fruits = set(['apple', 'orange', 'watermelon', 'grape'])

目标是从上面随机选取2个项目,上面的集合可能包含0个、1个或更多项目。我能想到的执行上述操作的唯一方法是将集合转换为列表(可变),从中我可以访问集合长度内的2个随机唯一索引。

使用
随机
模块:


这将在不替换的情况下对两个值进行采样(因此这两个值不同)。

并且可以与
集合一起使用
也可以考虑在示例中使用集合。这个问题明确地要求提供一个集合(例如,它不能传递给
random.choice()
),因此我认为这会改进答案。值得注意的是,在内部,这会将集合转换为列表或元组(取决于集合和样本的大小),然后运行采样过程。比如说,它不会在不可索引的集合上运行或运行其他算法。set()在这里有什么作用吗?它应该与执行以下操作完全相同:random.sample([1,2,3,4,5,6],2)您应该提到这是一个带有或不带替换的随机选择。您将如何从0项或1项列表中选择项目?以下操作应注意:导入随机VAL=set([1,2,3,4,5,6])random.sample(VAL,min(len vals,2))
import random
random.sample(set([1, 2, 3, 4, 5, 6]), 2)