Python 生成具有不同数字的随机列表
我试图生成一个包含10个不同数字的随机列表。这就是我到目前为止所做的:Python 生成具有不同数字的随机列表,python,python-3.x,Python,Python 3.x,我试图生成一个包含10个不同数字的随机列表。这就是我到目前为止所做的: from random import randint my_list = [] i = 0 while i < 10: random = randint(1, 25) if random not in my_list: my_list.append(random) i = i + 1 else: i = i print(my_list) 来自随
from random import randint
my_list = []
i = 0
while i < 10:
random = randint(1, 25)
if random not in my_list:
my_list.append(random)
i = i + 1
else:
i = i
print(my_list)
来自随机导入randint
我的清单=[]
i=0
当我<10时:
random=randint(1,25)
如果随机不在我的_列表中:
my_list.append(随机)
i=i+1
其他:
i=i
打印(我的列表)
但由于某些原因,它不起作用
(更新:我的列表将随机数添加为字符串,我需要将其添加为整数)
您可以使用上面的代码,它现在可以工作了。在我看来非常简单:
from random import randint
my_set = set()
while(len(my_set) < 10):
my_set.add(randint(0, 100))
my_list = list(my_set)
print(my_list)
使用
设置
,然后转换为列表
,因为列表可能包含重复的元素
示例代码是
from random import randint
my_set = set()
while len(my_set) < 10:
random = randint(1, 25)
my_set.add(str(random))
print(list(my_set))
来自随机导入randint
my_set=set()
而len(my_set)<10:
random=randint(1,25)
我的集合添加(str(随机))
打印(列表(我的集合))
在将随机数添加到列表之前,您正在将随机数转换为字符串(出于某种原因)。稍后,您将检查该数字是否是列表中的一个值,但它永远不会是,因为您从未向列表中添加数字。下面是问题的简单演示:
>>> 3 in ['3']
False
不用管字符串(或no opi=i
)
您还可以使用随机库:
import random
mylist = [random.randint(0,100) for item in range(10)]
输出:
[4,89,40,56,37,97,73,46,10,36]
random.randint(0100)->这里指定随机数的范围
范围(10)->在您的情况下为10值
希望它能解决您的问题这只是采样,不需要更换。随机抽取样本(范围(25),10)。。。某个地方一定有一个dupe。这里什么不起作用?有时(由于randint),我的代码会生成一个包含两个或多个相同整数的列表。
3
和“3”
是两个不同的值。您向列表中添加了一个字符串,但稍后检查是否存在int
。哦,不!这就是问题所在。我讨厌这个。谢谢。我不希望列表生成两个或更多相同的整数(在您的例子中有两个88)。您的输出本身表明这不是OP想要的。@coldspeed感谢您的反馈。没有注意到问题的这一部分,并通过编辑将其修复。考虑到只需一个函数调用即可完成,这仍然非常笨拙和低效。@coldspeed可以随意改进此社区wiki答案
from random import randint
my_list = []
i = 0
while i < 10:
r = randint(1, 25)
if r not in my_list:
my_list.append(r)
i = i + 1
print(my_list)
my_set = {}
while len(my_set) < 10:
my_set.add(randint(1,25))
print(my_set)
my_list = random.sample(range(1,26), 10)
import random
mylist = [random.randint(0,100) for item in range(10)]