Python 一次生成100个数字,将其列为一个列表,并将其添加到一个空列表中
我需要从1-500中生成100个数字并将其附加到空列表中,但我不知道如何修复代码。当我打印它时,它的末尾有一个标记。当我用len函数计算a时,它只表示1,所以它并没有真正地加上100个数字Python 一次生成100个数字,将其列为一个列表,并将其添加到一个空列表中,python,python-3.x,Python,Python 3.x,我需要从1-500中生成100个数字并将其附加到空列表中,但我不知道如何修复代码。当我打印它时,它的末尾有一个标记。当我用len函数计算a时,它只表示1,所以它并没有真正地加上100个数字 a = [] import random print("original: \n") for x in range(100): nums = random.randint(1,501) b = print(nums, end=" ") a.append(b) print(a) print(l
a = []
import random
print("original: \n")
for x in range(100):
nums = random.randint(1,501)
b = print(nums, end=" ")
a.append(b)
print(a)
print(len(a))
我相信这就是你要找的
print
不返回任何内容,您不能将print
添加到列表中。事实上,不清楚为什么需要两个变量
import random
a = []
for x in range(100):
a.append(random.randint(1,501))
print(' '.join(map(str, a)))
print(len(a))
避免循环的替代解决方案使用numpy
库:
import numpy as np
a = np.random.randint(1, 501, 100)
如果绩效是一个问题;e、 g.对于许多大型随机列表;以下是使用random
的基准测试与有效的基于列表的解决方案:
import numpy as np
import random
%timeit np.random.randint(1, 501, 100) # 5.97 µs
%timeit random.choices(range(1, 501), k=100) # 66.3 µs
我相信这就是你要找的
print
不返回任何内容,您不能将print
添加到列表中。事实上,不清楚为什么需要两个变量
import random
a = []
for x in range(100):
a.append(random.randint(1,501))
print(' '.join(map(str, a)))
print(len(a))
避免循环的替代解决方案使用numpy
库:
import numpy as np
a = np.random.randint(1, 501, 100)
如果绩效是一个问题;e、 g.对于许多大型随机列表;以下是使用random
的基准测试与有效的基于列表的解决方案:
import numpy as np
import random
%timeit np.random.randint(1, 501, 100) # 5.97 µs
%timeit random.choices(range(1, 501), k=100) # 66.3 µs
在python-3.6上,您可以使用该函数的返回值,并通过该值扩展
a
:
a.extend(random.choices(range(1, 501), k=100))
尽管如此,如果您从一个空列表开始,并且在此步骤之前没有添加任何内容,那么只需将a
初始化为
a = random.choices(range(1, 501), k=100)
之前不进行任何空列表初始化
如果您使用的是较旧版本的python,请在循环中使用
a.extend(random.randint(1, 500) for _ in range(100))
或者
或者
a = []
for _ in range(100):
a.append(random.randint(1, 500))
从文档中,我相信上限是包含在内的(因此,
500
) 在python-3.6上,您可以使用并通过此函数的返回值扩展a
:
a.extend(random.choices(range(1, 501), k=100))
尽管如此,如果您从一个空列表开始,并且在此步骤之前没有添加任何内容,那么只需将a
初始化为
a = random.choices(range(1, 501), k=100)
之前不进行任何空列表初始化
如果您使用的是较旧版本的python,请在循环中使用
a.extend(random.randint(1, 500) for _ in range(100))
或者
或者
a = []
for _ in range(100):
a.append(random.randint(1, 500))
从文档中,我相信上限是包含在内的(因此,500
)
这将返回一个随机数,因此复数名称“nums”在这里会产生误导
b = print(nums, end=" ")
print
函数打印一些东西,在本例中是生成的数字,但它本身没有返回值。因此b
将是None
a.append(b)
理论上,这可以将生成的编号附加到列表中。但是,正如我们所确定的,b
是None
,因此这将在列表中追加None
。此外,这一行在循环之外,因此它只运行一次,并且只添加100个数字中的一个
您应该这样做:
a = []
for x in range(100):
num = random.randint(1,501)
a.append(num)
print(a)
print(len(a))
您也可以在此处使用列表理解,使其更简单:
a = [random.randint(1, 501) for x in range(100)]
print(a)
print(len(a))
这将产生相同的结果
您还可以使用它自己已经能够生成具有指定大小的随机数列表。所以这也同样有效:
a = random.choices(range(1, 501), k=100)
这将返回一个随机数,因此复数名称“nums”在这里会产生误导
b = print(nums, end=" ")
print
函数打印一些东西,在本例中是生成的数字,但它本身没有返回值。因此b
将是None
a.append(b)
理论上,这可以将生成的编号附加到列表中。但是,正如我们所确定的,b
是None
,因此这将在列表中追加None
。此外,这一行在循环之外,因此它只运行一次,并且只添加100个数字中的一个
您应该这样做:
a = []
for x in range(100):
num = random.randint(1,501)
a.append(num)
print(a)
print(len(a))
您也可以在此处使用列表理解,使其更简单:
a = [random.randint(1, 501) for x in range(100)]
print(a)
print(len(a))
这将产生相同的结果
您还可以使用它自己已经能够生成具有指定大小的随机数列表。所以这也同样有效:
a = random.choices(range(1, 501), k=100)
您的代码是正确的,只是有一个小错误,那就是您没有缩进
a.append(nums)
,这样就超出了for
循环的范围。请尝试以下代码:)
您的代码是正确的,只是有一个小错误,那就是您没有缩进
a.append(nums)
,这样就超出了for
循环的范围。请尝试以下代码:)
函数的作用是:只生成一个随机数。您可以在for循环中生成100次随机数,并在列表中进行SimulationSoly追加,因此当在for循环之外时,列表“a”具有100个随机数,这可以通过length len()函数进行验证
我还附上了输出的屏幕截图
a = []
import random
print("original: \n")
for x in range(100):
nums = random.randint(1,501)
a.append(nums)
print("Numbers : " , a)
print("Length : " , len(a))
randint()函数只生成一个随机数。您可以在for循环中生成100次随机数,并在列表中进行SimulationSoly追加,因此当在for循环之外时,列表“a”具有100个随机数,这可以通过length len()函数进行验证
我还附上了输出的屏幕截图
a = []
import random
print("original: \n")
for x in range(100):
nums = random.randint(1,501)
a.append(nums)
print("Numbers : " , a)
print("Length : " , len(a))
print
函数返回None
。您应该在for循环中执行a.append(nums)
,您可以摆脱b=
,只需执行print(nums,end=“”)
您可以这样在一行中执行:a=[random.randint(1500)for uu范围内(100)]
。这被称为列表理解。@Laire,以下解决方案之一解决了您的问题吗?如果是,请随意接受(勾选左侧),以便其他用户知道。print
函数返回None
。您应该在for循环中执行a.append(nums)
,您可以摆脱b=
,只需执行print(nums,end=“”)
您可以这样在一行中执行:a=[random.randint(1500)for uu范围内(100)]
。这被称为列表理解。@Laire,以下解决方案之一解决了您的问题吗?如果是,请随意接受(在左上打勾