首页 > 解决方案 > 生成的每个随机样本序列的 Python 还包括一个单独的 ID

问题描述

我正在尝试编写一个乐透模拟器,其中代码为大约 1000 个玩家生成 45 个随机唯一数字中的 6 个,其中每个玩家都有一个唯一的 ID。我想将它放入一个如下所示的数组中:

lotto[0...n-1][0...5]

其中 [0...n-1] 包含玩家 ID,[0...5] 包含他们唯一的 6 个游戏编号。

所以打印时应该看起来像这样

lotto[1][32, 34, 24, 13, 20, 8]
lotto[2][1, 27, 4, 41, 33, 17]
...
lotto[1000][6, 12, 39, 16, 45, 3]

在不实际将两个数组合并在一起的情况下做这样的事情的最佳方法是什么?

稍后我想使用合并排序算法对每个玩家的游戏号码进行数字排序,这样看起来就像这样,玩家 ID 不会干扰游戏号码。

lotto[1][8, 13, 20, 24, 32, 34]
lotto[2][1, 4, 17, 27, 33, 41]

到目前为止,我有:

playerID = list(range(1, 1001)) 
playerNum = random.sample(range(1, 45), 6)
print(playerID + playerNum)

但这只是打印并加入:

[1, 2, 3, ..., 1000, 32, 5, 19, 27, 6, 22]

谢谢您的帮助。

标签: python-3.x

解决方案


import random

n_players = 1000
lotto = [random.sample(range(1, 45), 6) for _ in range(n_players)]

或者

import random

n_players = 1000
tup = tuple(range(1, 45))
lotto = []
for _ in range(n_players):
    lotto.append(random.sample(tup, 6))

推荐阅读