如何在python中打印文本时不重复random.choice

如何在python中打印文本时不重复random.choice,python,random,repeat,choice,Python,Random,Repeat,Choice,我在文本文件中有三个列表,我正在尝试随机生成一个四个单词的消息,从前缀和suprafix列表中选择前三个单词,并从“后缀”文件中选择第四个单词 但是,我想防止它拾取已由random.choice函数选择的单词 import random a= random.random prefix = open('prefix.txt','r').readlines() suprafix = open('suprafix.txt','r').readlines() suffix = open('suffix

我在文本文件中有三个列表,我正在尝试随机生成一个四个单词的消息,从
前缀
suprafix
列表中选择前三个单词,并从“后缀”文件中选择第四个单词

但是,我想防止它拾取已由
random.choice
函数选择的单词

import random

a= random.random
prefix = open('prefix.txt','r').readlines()
suprafix = open('suprafix.txt','r').readlines()
suffix = open('suffix.txt','r').readlines()
print (random.choice(prefix + suprafix), random.choice(prefix + suprafix), random.choice(prefix + suprafix), random.choice(suffix))
正如您所见,它从这两个列表中随机选择三个单词。

random。示例(pop,k)
pop
中选择
k
项,而不进行替换。因此:


感谢xnx通过使用random.sample帮助我解决问题,然后再打印其中一个,我可能已经做了很长一段时间了,但我就是这样做的>

import random
a=随机

prefix=open('prefix.txt','r')。readlines()

suprafix=open('suprafix.txt','r')。readlines()

suffix=open('suffix.txt','r')。readlines()

prefix1,prefix2,prefix3=随机样本(前缀,3)

suprafix1,suprafix2,suprafix3=随机样本(suprafix,3)

后缀=随机。选择(后缀)

一=前缀1,上标1

二=前缀x2,上标2

三=前缀x3,上标3


打印(random.choice(一)、random.choice(二)、random.choice(三)、后缀)

您可以
random.shuffle
并对列表进行切片,或者
random.sample
,或者存储以前的选择,并在再次出现时“手动”拒绝它们,或者。。。
import random