繁体   English   中英

Python:无序集上的.pop()

Python: .pop() on unordered sets

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我对.pop()方法有疑问。 在文档中,它声明了以下内容:

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

那么“任意”到底是什么意思? 例如,例如:如果我想从随机确定位置的用户列表中构建队列,是否可以将所有用户输入集合中,然后使用.pop()构建随机分配的队列?

所以代码看起来像

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

这是将成员随机分配给索引的合理方法吗? 还是.pop()依赖输入数据的某种方式?

谢谢!

2 个回复

没有。

“任意”表示实现返回最方便的元素。 您不能保证随机性。 如果需要随机选择,请使用random.sample()random.shuffle()

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

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

如果要一一获取元素,则可以使用li.pop()

1 有无序集合的Python数据类型吗?

我想将集合A和B存储在集合C 。 我的条件是,如果设置A = {a,b}且设置B = {b,a} 然后集合A等于集合B 集C将为= {{a,b}} 是否有支持这种数据类型的数据类型? ...

2 无序Python集的“顺序”

我知道Python中的集合是无序的,但是我很好奇它们显示的“顺序”,因为它看起来是一致的。 每次它们似乎都以相同的方式乱序: ...还有另一个例子: 我很好奇为什么会这样。 有什么帮助吗? ...

4 Python-设置.pop()行为

这是我在Python集中发现的奇怪现象。 我读到集合中没有顺序,但是它会从0到79弹出较低的元素,然后从79到127弹出较低的元素。它不再弹出较低的元素。 仅在128个进来后弹出79。 为什么会这样呢? 有没有其他选择可以在Python中使用有序数据结构? 为什么它会从0到79弹出 ...

5 无序集合 - 在python中设置[重复]

这个问题在这里已有答案: 为什么字典中的顺序和设置是任意的? 6个答案 很抱歉,如果这是一个基本问题,但我试图了解set类型如何在python中工作 来自docs : set对象是不同的可哈希对象的无序集合。 作为无序集合,集合不记录元素位 ...

7 在 python 中,集合每次都从 0-9 排序?! 不是无序的

起初我认为这是一个巧合,所以我写了一个测试来尝试它,这是真的,我运行了 100 万次,每次返回的集合都是有序和排序的。 这只发生在您使用 0-9 的整数时,只要插入大于 9 的整数,然后插入的任何整数都不会被排序。 为什么是这样? 同样对于浮点数来说,它有点像它,但不是一直都是正确的,所以很奇怪,我 ...

10 按无序集排序

我有在每个框架中创建的项目列表,需要对其进行排序。 每个项目的第一个要排序的成员变量是unordered_set 。 我已经将其移至系统中所有位置的有序集合,以便可以在项目列表中对其进行排序。 但是我遭受了另一个性能上的打击。 请记住,每一项都会被销毁并在每帧的基础上进行重新创建 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM