Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 生成具有不同数字的随机列表_Python_Python 3.x - Fatal编程技术网

Python 生成具有不同数字的随机列表

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) 来自随

我试图生成一个包含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)
来自随机导入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 op
i=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)]