我对.pop()方法有疑问。在文档中,它说明了集合:
从集合中删除并返回任意元素。
那么“武断”究竟是什么意思呢?比如,例如:如果我想从随机确定位置的用户列表构建队列,我可以将所有用户输入到集合中,然后使用.pop()构建随机分配的队列吗?
所以代码看起来像
queue_set = {'bob','rachel','sara','david'}
queue = dequeue([])
while queue_set:
queue.append(queue_set.pop())
这是将成员随机分配到索引的合理方法吗?或者.pop()依赖于输入数据的某种方式或什么?
谢谢!
答案 0 :(得分:5)
没有
“Arbitrary”表示实现返回最方便的元素。你无法保证随机性。如果您需要随机选择,请使用random.sample()
或random.shuffle()
。
答案 1 :(得分:1)
我认为最好的方法是使用random.shuffle
>>> import random
>>> li = ["bob", "rachel", "sara", "david"]
>>> random.shuffle(li)
>>> li
['sara', 'bob', 'david', 'rachel']
如果您想逐个获取元素,则可以使用li.pop()
。