現在有乙個list:[1,2,3,4,5,6]
,我需要把這個list在輸出的時候,是以一種隨機打亂的形式輸出。
專業點的術語:將乙個容器中的資料每次隨機逐個遍歷一遍。
注意:不是生成乙個隨機的list集。
python 3.6
有人可能會通過random內建函式,來間接實現想要的結果。但是這種方式,太原始,也不夠優雅,而且有種重複造輪子的嫌疑。這裡我就不貼我自己通過random實現的效果了。
random中有乙個random.shuffle()方法提供了完美的解決方案。**如下:
x = [1,2,3,4,5,6]
random.shuffle(x)
print(x)
輸出結果:
第一次輸出內容:[6, 5, 1, 3, 2, 4]
第二次輸出內容:[6, 1, 3, 5, 2, 4]
第三次輸出內容:[5, 3, 1, 2, 4, 6]
從結果我們可以看出,輸出是完全隨機的,**量就兩行,不需要random,不需要for迴圈。
def shuffle(self, x, random=none):
"""shuffle list x in place, and return none.
原位打亂列表,不生成新的列表。
optional argument random is a 0-argument
function returning a random float in [0.0, 1.0);
if it is the default none,
the standard random.random will be used.
可選引數random是乙個從0到引數的函式,返回[0.0,1.0)中的隨機浮點;
如果random是預設值none,則將使用標準的random.random()。
"""if random is none:
randbelow = self._randbelow
for i in reversed(range(1, len(x))):
# pick an element in x[:i+1] with which to exchange x[i]
j = randbelow(i + 1)
x[i], x[j] = x[j], x[i]
else:
_int = int
for i in reversed(range(1, len(x))):
# pick an element in x[:i+1] with which to exchange x[i]
j = _int(random() * (i + 1))
x[i], x[j] = x[j], x[i]
注意 :從**的注釋,我們看到
random.shuffle()
是對原list做修改,如果需要保留原list,請注意這個細節。本文首發於bigyoung小站
Python打亂列表
a 1 2,3 4,5 這是乙個列表,需要將裡面的資料無序輸出,就是打亂列表方法一 可直接呼叫random模組裡的shuffle方法 import random a 1,2,3,4,5 random.shuffle a print a 輸出如下 5,3,1,2,4 2,5,1,3,4 方法二 可自己...
java隨機打亂ArrayList或者List
1.直接呼叫shuffle,就是隨機排序 最最簡單的方法,推薦!例 collections.shuffle list shuffle就是洗牌的意思 例 string arr new string list list arrays.aslist arr 直接呼叫shuffle,就是隨機排序 例 col...
python中隨機打亂資料集
假設我們現在有資料 data,label 方法一 打亂資料順序 import random index i for i in range len data random.shuffle index data data index label label index 打亂後的結果 方法二 data s...