gpt4 book ai didi

python - 如何删除列表中的重复数字,然后用新的随机数替换

转载 作者:太空宇宙 更新时间:2023-11-04 00:01:26 24 4
gpt4 key购买 nike

Python 新手。我正在尝试制作一种彩票风格的东西,其中 for 循环将 5 随机数附加到列表中。

假设到目前为止的列表是 nList = [1,2,3,4],最后一次迭代恰好也是 4

我希望代码删除应该在最后一个索引中的额外 4,并将其替换为一个全新的随机数,该随机数不会重复任何其他数字列表。我似乎无法理解它。

我试过使用nList.pop(),这解决了删除重复的问题,我只是不知道如何添加新的随机数。

import random
nList = []
random.seed()
for x in range(5):
n = random.randint(1,39)
for item in nList:
if n == item:
nList.pop()
else:
nList.append(n)

print(nList)

我只是得到了一个较小的列表,这不是我想要的。

最佳答案

您可以使用 set 而不是使用 list它具有没有重复的特殊属性。这个想法是,如果您生成一个已经在 set 中的数字,您只需重新滚动,直到您得到一个不在 set 中的数字。通过使用集合,您还可以获得 O(1) 查找时间的优势。

import random

nList = set()
for x in range(5):
n = random.randint(1,39)
while n in nList:
n = random.randint(1,39)
nList.add(n)

print(list(nList))

示例输出

[24, 25, 11, 12, 15]

关于python - 如何删除列表中的重复数字,然后用新的随机数替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55583705/

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