[問題] random.choice 的 replace 問題
我用 Python 3,
以前有個好用的參數在 random.choice() 內叫做 replace,
改成 False 就可以不重複隨機選取。
我有個 list_t 想給這個函式隨機選取其中之一,
但在最新的 python 3 的 random 裡面,
用 replace 這個參數就會報錯,請問有效能比較好的寫法來取代這功能嗎?
用 in 來判斷是否被選取過會花太多時間。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.17.229
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1521516206.A.F94.html
推
03/20 11:46,
7年前
, 1F
03/20 11:46, 1F
→
03/20 11:47,
7年前
, 2F
03/20 11:47, 2F
→
03/20 11:48,
7年前
, 3F
03/20 11:48, 3F
ok 看來我搞混兩種 random 了。
random.sample() 是有這個功能,
可是我希望的是在迴圈內每次隨機抓到的都是不重複的,
random.sample() 是一口氣隨機抓 k 個 items。
※ 編輯: henry8168 (60.248.17.229), 03/20/2018 12:37:43
推
03/20 13:36,
7年前
, 4F
03/20 13:36, 4F
→
03/20 13:38,
7年前
, 5F
03/20 13:38, 5F
→
03/20 13:39,
7年前
, 6F
03/20 13:39, 6F
因為我 sample 的對象是 list,那其實先 random.shuffle() 過後,再依序存取也可吧
這樣 replace 參數也幫不上忙了 orz
※ 編輯: henry8168 (60.248.17.229), 03/20/2018 15:08:27
推
03/20 15:40,
7年前
, 7F
03/20 15:40, 7F
→
03/20 15:40,
7年前
, 8F
03/20 15:40, 8F
推
03/20 16:10,
7年前
, 9F
03/20 16:10, 9F
→
03/20 16:11,
7年前
, 10F
03/20 16:11, 10F
→
03/20 16:15,
7年前
, 11F
03/20 16:15, 11F
→
03/20 16:17,
7年前
, 12F
03/20 16:17, 12F
→
03/20 16:17,
7年前
, 13F
03/20 16:17, 13F
→
03/20 16:19,
7年前
, 14F
03/20 16:19, 14F
推
03/20 16:20,
7年前
, 15F
03/20 16:20, 15F
推
03/20 20:07,
7年前
, 16F
03/20 20:07, 16F
Python 近期熱門文章
PTT數位生活區 即時熱門文章