[英]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.