2
說我有一些隨機數0-9。我想找到一種方法來獲得值0-9,但我不想重複另一個數字,直到所有其他值都被使用了相同的次數。Python隨機數使用新號碼之前的唯一號碼發生器
Ex。 4,6,5,3,0,1,9,2,7,8,(蘭特數,因爲我使用了每隔一個數字一次)
有沒有任何有效的方法來做到這一點?
說我有一些隨機數0-9。我想找到一種方法來獲得值0-9,但我不想重複另一個數字,直到所有其他值都被使用了相同的次數。Python隨機數使用新號碼之前的唯一號碼發生器
Ex。 4,6,5,3,0,1,9,2,7,8,(蘭特數,因爲我使用了每隔一個數字一次)
有沒有任何有效的方法來做到這一點?
反覆洗牌你想要的號碼範圍和將它們連接起來:
import random
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
result = []
for i in range(100):
random.shuffle(numbers)
result.extend(numbers)
print(result)
或者:
import random
import itertools
def generate_numbers():
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
while True:
random.shuffle(numbers)
yield from numbers
print(list(itertools.islice(generate_numbers(), 50)))