【发布时间】:2019-01-11 18:53:53
【问题描述】:
假设我有 Python 3 中的代码
X, Y, Z = 10, 20, 30
data = [[1,3,6],[8,15,29],[8,9,19]] # observe data
那我如何随机生成不在data 中的n(不是很大)数据元素。
条件:元素[a,b,c]必须不在data和0<a<X、0<b<Y、0<c<Z中
[1,3,5] 很好,因为它不在data 中,并且它的元素满足条件
[11,3,6] 不好,因为它不满足条件 11>10
例如n=4时,我想要一个不重复的元素列表
newdata = [[1,6,6],[8,17,25],[2,6,11], [4,6,12]]
【问题讨论】:
-
听起来是个有趣的问题,您能否在开始时也包括一个合理的编码尝试?
-
@davedwards,我还在想。我的方法是使用蛮力技术。例如生成所有可能的元素,然后随机选择不在
data中的n元素。但效率不高。 -
这可能行得通,但暴力并不总是有效的。也许像生成
random.randint(0, X)并检查结果是否不在data列表中,如果不是,则添加到newdata 列表中?
标签: arrays python-3.x list random