如何从不是特定元素的列表中随机获取 n 大小的元素

How to take a random n sized elements from a list that aren't specific elements

从一个列表中,我必须采用 quantity 大小的随机元素列表并将其转换为另一个名为 sample 的列表。这是我的:

used = [element1.png, element2.png]

sample = random.sample(os.listdir(current_dir + '/Logos/'), quantity)

如何确保此随机样本中没有来自 used 的任何项目?是否可以在一行中完成此操作而不是笨重的 if 语句?

IIUC 也许可以尝试一个简单的 list 理解:

used = ['element1.png', 'element2.png']
sample = random.sample([i for i in os.listdir(current_dir + '/Logos/') if i not in used], quantity)

现在:

print(sample)

会给出预期的结果。

把你的人口变成一个集合,然后用集合(used)取差。然后从那个差异结果中取样本。

sample = random.sample(
             list(set(os.listdir(current_dir + '/Logos/')) - set(used)),
             quantity)