簡體   English   中英

Python:無序集上的.pop()

[英]Python: .pop() on unordered sets

我對.pop()方法有疑問。 在文檔中,它聲明了以下內容:

從集合中刪除並返回任意元素。

那么“任意”到底是什么意思? 例如,例如:如果我想從隨機確定位置的用戶列表中構建隊列,是否可以將所有用戶輸入集合中,然后使用.pop()構建隨機分配的隊列?

所以代碼看起來像

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

這是將成員隨機分配給索引的合理方法嗎? 還是.pop()依賴輸入數據的某種方式?

謝謝!

沒有。

“任意”表示實現返回最方便的元素。 您不能保證隨機性。 如果需要隨機選擇,請使用random.sample()random.shuffle()

我認為最好的方法是使用random.shuffle

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM