How do I pick 2 random items from a Python set?
我现在有一个n大小的python集,其中n大于等于0。是否有一个快速的1或2行python解决方案?例如,集合将如下所示:
1
| fruits = set(['apple', 'orange', 'watermelon', 'grape']) |
目标是从上面选择2个随机项,上面的集合可能包含0、1或更多项。我能想到的唯一方法是将集合转换成一个列表(可变),从中我可以访问集合长度内的2个随机唯一索引。
- 如何从0项或1项列表中选择项?
- 下面应该注意:import random vals=set([1,2,3,4,5,6])random.sample(vals,min(len(vals),2))。
使用random模块:http://docs.python.org /图书馆/ random.html
1 2
| import random
random.sample(set([1, 2, 3, 4, 5, 6]), 2) |
这两种样品的值替换(这两个值不同)。
- 也可以与set一起使用。
- 考虑在示例中使用集合。这个问题明确地要求一个集合(例如不能传递给random.choice()),所以我认为它会改进答案。
- 值得注意的是,在内部,这会将集合转化为一个列表或元组(取决于集合和样本的大小),然后运行采样过程。比如说,它不会运行水库采样或其他一些适用于不可索引集合的算法。
- set()在这里有效果吗?它应该和做的完全一样:随机。样本([1,2,3,4,5,6],2)
- 从docs:返回一个k(第二个参数,上面k=2)长度的唯一元素列表。
- 如果我想在随机选择之后得到剩余的物品呢?
- 你应该提到这是一个随机选择,有没有替换
- 它能和一组字符串一起工作吗?