如何在 python 中打印一段文本时不重复 random.choice
How to NOT repeat a random.choice when printing a piece of text in python
我在文本文件中有三个列表,我试图随机生成一个四字消息,从 prefix
和 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.sample(pop, k)
从 pop
中选择了 k
项,没有替换。因此:
prefix1, prefix2, prefix3 = random.sample(prefix, 3)
suprafix1, suprafix2, suprafix3 = random.sample(suprafix, 3)
suffix = random.choice(suffix)
print (prefix1 + suprafix1, prefix2 + suprafix2, prefix3 + suprafix3, suffix))
谢谢 xnx 帮助我解决了问题,首先使用 random.sample 然后打印它们中的任何一个,我可能已经完成了很长一段时间,但我就是这样做的 >
import random
a=random.random
prefix = open('prefix.txt','r').readlines()
suprafix = open('suprafix.txt','r').readlines()
suffix = open('suffix.txt','r').readlines()
prefix1, prefix2, prefix3 = random.sample(prefix, 3)
suprafix1, suprafix2, suprafix3 = random.sample(suprafix, 3)
后缀 = random.choice(后缀)
one = prefix1, suprafix1
二 = 前缀 2,超固定 2
三 = prefix3, suprafix3
打印(random.choice(一),random.choice(二),random.choice(三),后缀)
我在文本文件中有三个列表,我试图随机生成一个四字消息,从 prefix
和 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.sample(pop, k)
从 pop
中选择了 k
项,没有替换。因此:
prefix1, prefix2, prefix3 = random.sample(prefix, 3)
suprafix1, suprafix2, suprafix3 = random.sample(suprafix, 3)
suffix = random.choice(suffix)
print (prefix1 + suprafix1, prefix2 + suprafix2, prefix3 + suprafix3, suffix))
谢谢 xnx 帮助我解决了问题,首先使用 random.sample 然后打印它们中的任何一个,我可能已经完成了很长一段时间,但我就是这样做的 >
import random
a=random.random
prefix = open('prefix.txt','r').readlines()
suprafix = open('suprafix.txt','r').readlines()
suffix = open('suffix.txt','r').readlines()
prefix1, prefix2, prefix3 = random.sample(prefix, 3)
suprafix1, suprafix2, suprafix3 = random.sample(suprafix, 3)
后缀 = random.choice(后缀)
one = prefix1, suprafix1
二 = 前缀 2,超固定 2
三 = prefix3, suprafix3
打印(random.choice(一),random.choice(二),random.choice(三),后缀)