【发布时间】:2016-10-08 17:20:34
【问题描述】:
我想以这种方式创建一个列表:
列表的长度是我自己决定的一个数字,比如 s(相当大,不夸张)
所有条目都是零,除了一个,它的值为 n
值为 n 的条目可能在中间,但我希望它随机出现在列表中,即如果我再次运行程序(或使用某种循环),它会给我一个向量,其中不同于 0 的条目位于另一个位置。例如。 v1 = [0,0,n,0], v2 = [n,0,0,0] 等
我该怎么做?
这是我为大小为 4 的列表尝试的:
s = [0,0,0,0]
r = random.random()
intr = int(r*len(s))
s[intr] = n
谢谢
【问题讨论】:
-
请出示您自己尝试的minimal reproducible example,并说明您面临的困难。 SO 不是代码编写服务。
-
我建议你看看 NumPy
-
您有
s内部列表?n在每个内部列表中吗?内部列表总是大小为 4 吗? -
那么内部列表可以是任意大小,关键是我希望随机元素等于n,其他等于0
-
import random; l = [0 for _ in range(4)]; ridx = random.randrange(0, len(l)); l[ridx] = 10; print(l)