<p>我想创建一个程序,随机生成一个8x8网格硬币。我已经创建了两个列表(一个用于X坐标的列表和一个用于Y坐标的列表)。在这些列表上,两个坐标不能相同。这很难解释,下面是我举例的意思:</p>
<pre><code>[1, 7, 4, **6**, 9, 2, 3, **6**, 8, 0] (list for the x co-ordinate)
[9, 3, 3, **1**, 2, 8, 0, **1**, 6, 1] (list for the y co-ordinate)
</code></pre>
<p>因此,创建了两个列表。但是<code>(6,1)</code>出现了两次。我不要这个。那么,我该如何在代码中考虑到这一点,以确保忽略这一点,并将这些数字重新生成为不同的坐标?下面是我的代码,我真的不知道如何实现这样一个系统的东西!你知道吗</p>
<pre><code>def treasurePro():
global coinListX, coinListY
coinListX = []
coinListY = []
for x in range(10):
num = randint(0,8)
coinListX.append(num)
print(coinListX)
for x in range(10):
num = randint(0,8)
if num == 0 and coinListX[x] == 0:
treasurePro() #goes back to the beginning to restart.
else:
coinListY.append(num)
print(coinListY)
</code></pre>
<p>你的电路板足够小,你可以简单地产生所有的可能性,采取一个样本,然后转置到所需的X和Y的单独列表</p>
<pre><code>possibilities = [(a,b) for a in range(10) for b in range(10)]
places = random.sample(possibilities, 10)
x,y = zip(*places)
</code></pre>