使用Python从列表中选择一个不重复的随机元素

4

I have this list:

pics = [i for i in glob.glob("*.jpg")]
choice = random.choice(pics)

下面的代码用于从列表中选择一张随机图片。我的问题是,它不是唯一的,很多图片会重复出现。有没有办法克服这个问题?


附注:[i for i in glob.glob("*.jpg")]glob.glob("*.jpg")相同。除非您正在处理文件名,否则这里不需要列表推导式。 - DSM
你可能想看一下这个答案 - Ralf Haring
这个回答解决了你的问题吗?从未知长度的序列中仅迭代一次随机选择N个不同项 - Mr. T
1个回答

6
使用random.sample来选择随机且不重复的元素:
>>> import random
>>> random.sample(glob.glob('*.jpg'), number_of_images_to_choose)
< p > random.sample 返回一个list对象。

附注:不需要使用列表推导,除非您计划过滤glob.glob的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接