![](/img/trans.png)
[英]randomly pick an element from a list in python using pseudo random generator which should happen 50 percent of time
[英]Pseudo-randomly pick an element from a list only if it was not chosen yet
有沒有辦法“偽”-從以前沒有選擇的列表中隨機選擇一個元素? 我知道choice
函數,它從列表中返回一個隨機項目,但不考慮以前選擇的項目。 我可以跟蹤已經選擇了哪些元素,並隨機選擇另一個尚未選擇的項目,但這可能包括嵌套循環等。
例如,我還可以刪除每次迭代時從列表中選擇的元素,但這似乎也不是一個好的解決方案。
我的問題是:是否有一個“有意識”的choice
功能,它只選擇以前沒有選擇的項目? 請注意,我不是在問如何實現這樣的功能,但可能的解決方案當然也被廣泛接受。
正如其他人所說,您可以洗牌列表,然后使用list.pop()
方法。 下面是一個例子:
>>> import random
>>> mylist = list(range(5))
>>> print(mylist)
[0, 1, 2, 3, 4]
>>> random.shuffle(mylist)
>>> print(mylist)
[4, 2, 0, 1, 3]
>>> while len(mylist) > 0:
... print(mylist.pop())
...
3
1
0
2
4
>>> print(mylist)
[]
從頂部開始隨機播放列表和彈出元素。 那只會生成每個列表元素一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.