的Python:.pop()上的无序套(Python: .pop() on unordered se

2019-10-21 14:13发布

我有一个关于该.pop()方法的问题。 在本文档中,它指出在集:

删除并从集合返回任意元素。

那么究竟是什么“乱”是什么意思? 等等,例如:如果我想从那里位置是随机确定用户的列表构建一个队列,我可以在所有用户进入一组,然后使用.pop建立一个随机分配队列()?

因此,代码会看起来像

queue_set = {'bob','rachel','sara','david'}
queue = dequeue([])
while queue_set:
        queue.append(queue_set.pop())

请问这是随机分配成员索引的合理方式是什么? 抑或是.pop()依赖于某种方式输入的数据,还是什么?

谢谢!

Answer 1:

没有。

“任意”是指实现收益为准元素是最方便的。 你不能保证随机性。 使用random.sample()random.shuffle()如果你需要随机选择。



Answer 2:

我认为最好的办法是使用random.shuffle

>>> import random
>>> li = ["bob", "rachel", "sara", "david"]
>>> random.shuffle(li)
>>> li
['sara', 'bob', 'david', 'rachel']

如果你想通过一个到达的元素之一,你就可以使用li.pop()



文章来源: Python: .pop() on unordered sets
标签: python set