gpt4 book ai didi

python - 检查随机生成的列表中的重复项并替换它们

转载 作者:行者123 更新时间:2023-11-28 19:54:08 25 4
gpt4 key购买 nike

我正在制作一款带有随机生成炸弹的扫雷游戏。然而,有时我发现我的炸弹坐标列表中有重复项。如何检查列表中的重复项并将其替换为其他随机坐标。

from random import randint

def create_bombpos():
global BOMBS, NUM_BOMBS, GRID_TILES
for i in range(0, NUM_BOMBS):
x = randint(1, GRID_TILES)
y = randint(1, GRID_TILES)
BOMBS.append((x, y))
print(BOMBS)

用户可以通过输入GRID_TILES来决定棋盘的大小。如果他们输入 5,则棋盘将为 5x5。炸弹的数量是:

GRID_TILES * GRIDTILES / 5

最佳答案

每次搜索整个 BOMBS 列表都会花费 O(n)(线性时间)。为什么不使用 set反而? a Set 保证你最终会得到不同的(在散列方面)元素。

from random import randint

def create_bombpos():
BOMBS = set()
i = 0
while i<NUM_BOMBS:
x = randint(1, GRID_TILES)
y = randint(1, GRID_TILES)
if (x,y) not in BOMBS
BOMBS.add((x, y))
i = i + 1
print(BOMBS)

让我给你一个集合的例子:

>>> a = set()
>>> a.add((1,2))
>>> a
{(1, 2)}
>>> a.add((1,2))
>>> a.add((1,3))
>>> a.add((1,2))
>>> a
{(1, 2), (1, 3)}

我可以多次将相同的元素添加到集合中,但只会出现 1 个实例。

关于python - 检查随机生成的列表中的重复项并替换它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39846207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com