列表中的随机样本

2024-04-26 14:53:54 发布

您现在位置:Python中文网/ 问答频道 /正文

在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 = True

indexInCourse是一个函数,它返回列表列表中某个项在哪个列表中,因此对于(x, 1),它将返回0。目标是使switchers成为两个不同的数字,它们在整体上位于不同的列表中,因此类似于[1, 9]或{}。我目前的方法是可行的,但是对于我要处理的大量列表来说,速度非常慢。有人想知道更多的Python吗?在


Tags: sample方法函数falsetrue目标列表if
1条回答
网友
1楼 · 发布于 2024-04-26 14:53:54

为什么不先从x中随机选择两个不同的列表,然后在它们之间交换两个元素的随机选择?在

lists = random.sample(x, 2)
# now we swap two random elements between lists[0], lists[1]

相关问题 更多 >