鍍金池/ 問答/Python/ 關于隨機取數(shù)的問題

關于隨機取數(shù)的問題

例如我有一個

list = [1, 2, 3, 4, 5, 6, 7, 8, 9]

然后我隨機取一個數(shù):

s = random.randint(1,len(list))

那么怎么保證取完這個列表呢?

回答
編輯回答
毀憶

你可以描述清除一些嗎? 取完這個列表是什么意思?
用random模塊取list里的隨機數(shù)可以這樣做:

>>> a=list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> random.choice(a)
7
>>> random.choice(a)
0
>>> random.choice(a)
0
>>> random.choice(a)
6
>>> random.choice(a)
4

更新:
想達到你要的效果可以用循環(huán),每次從list里面隨機取出一個,然后把它從list中移除.
還有一種就是用random的shuffle函數(shù),打亂list,然后按順序取

>>> a=[1,2,3,4,5]
>>> random.shuffle(a)
>>> a
[5, 1, 4, 2, 3]
2017年4月6日 15:11
編輯回答
只愛你

概率中的取球不放回。

2018年8月23日 11:21
編輯回答
生性
import random
random.shuffle(that_list)
2018年6月9日 01:14
編輯回答
久舊酒
import random
s = [1, 2, 3]
print random.sample(s, len(s))

他會自動幫你完成取出不放回。你可以看一下它的實現(xiàn)。使用random取一個數(shù)然后將取出數(shù)的位置和邊界最后一個數(shù)交換。邊界縮小1 繼續(xù)取數(shù)
這種方法不會改變你原來的list順序,他會生成一個新的list。
使用shutfull會對你傳入的list產(chǎn)生影響??茨愕男枨罅?/p>

2018年9月2日 11:47