python - 在 Python 中生成填充有唯一整数值​​的列表

标签 python list random unique

首先,我想说的是,我认为之前已经回答了完全相同的问题,但经过简短的研究后,我找不到任何线索让我找到我想要的答案,这意味着我没有挖掘足够或错过了一些关键字。如果有这个问题,我很抱歉。

无论如何,我已经开始学习 python 并且正在做一些练习。我需要创建一个列表,其中包含 10 个随机生成的整数,每个整数必须具有不同的值。

所以我尝试将列表的第一个元素与下一个元素进行比较,如果它们相同,我尝试使用 if 语句生成一个新数字。

import random

listA = []

for i in range(0,10):
    x=random.randint(1,100)

    if listA[i] == listA[i-1]:
        x=random.randint(1,100)
    else:
        listA.append(x)

listA.sort()
print(listA)

但是我有一个错误说; “列表索引超出范围”

我希望 if 语句从“0”索引开始,一直计数到“listA”的第 9 个索引,然后比较它们,如果相同,则生成另一个随机数。但显然,我的索引是错误的。

此外,如果您对代码有任何其他评论,我们将不胜感激。

提前感谢您抽出时间。

最佳答案

在 Python 中,set 只能包含唯一值,因此在下面的代码中,重复的随机数不会增加 set 的长度:

import random

s = set()
while len(s) < 10:
    s.add(random.randint(1,100))

print(sorted(s))

输出:

[18, 20, 26, 48, 51, 72, 75, 92, 94, 99]

关于python - 在 Python 中生成填充有唯一整数值​​的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54535285/

相关文章:

java - 如何在 Java 中生成随机排列?

带名称输入的 Python 石头/剪刀/布

python - 使用 arrayName 和 arrayName[ :] in Python? 有什么区别

list - 碧 Jade 报告 : Passing in a list of lists as a datasource

python - 如何在列表列表中强制单独处理相同的元素?

java - 无限 strip 上索引的伪随机

java - Java中的随机16位数字函数

python - 高效地在海量文件中搜索字符串

python - lxml : How to verify tag value in different nodes

python - OrderedDict 的设置、获取和 popitem 性能