在python中,我有一个列表,如x:[[1, 2, 3],[4, 5, 6], [7, 8, 9]]
我还有一个清单,y,就像[1, 2, 3, 4, 5, 6, 7, 8, 9]一样
我需要从y中获得两个没有放在x列表中的随机项,这样我就可以在x中切换它们,目标是类似于[[1, 2, 9], [4, 5, 6], [7, 8, 3]]。我目前的方法如下:
done = False
while not done:
switchers = random.sample(y, 2)
if indexInCourse(x, switchers[0]) != indexInCourse(course, switchers[1]):
done = TrueindexInCourse是一个函数,它返回在列表列表中的项目列表,因此对于(x, 1),它将返回0。switchers的目标是成为两个不同的数字,它们在整体上处于不同的列表中,比如[1, 9]或[4, 7]。我目前的方法是有效的,但是对于我已经浏览过的大量列表,它的速度非常慢。有没有人知道更多的琵琶方法来做到这一点?
发布于 2016-06-09 22:43:49
为什么不先从x中随机选择两个不同的列表,然后在它们之间随机交换两个元素的选择呢?
lists = random.sample(x, 2)
# now we swap two random elements between lists[0], lists[1]https://stackoverflow.com/questions/37737239
复制相似问题