假设我的文本文件alphabets.txt
A B E G L I P c e f u y 2 8 9 6
我想打开这个文件,我可以从
开始f = open("/home/someuser/Documents/alphabets.txt")
for word in f.read().split():
print(word)
但是我希望从这些字母表中打印出随机单词。
我希望每个字母表中包含8个字符的单词。像排列组合一样
任何单词都不应该从组合中留下,不应该重复。 我怎么能这样做?
提前致谢
答案 0 :(得分:1)
使用 rzeczownik - (1.1) zestaw
rzeczownik - (1.2) mat. zbiór (lub bez nawiasów)
...
przymiotnik - (2.1) gotowy
...
获取所有组合。
itertools.product
要获取随机字词,您可以>>> alphabet = "ABCDEF"
>>> words = [''.join(x) for x in itertools.product(alphabet, repeat=3)]
>>> words
['AAA', 'AAB', ... 'FFE', 'FFF']
>>> len(words)
216
列出该random.shuffle
元素(不重复),或使用pop
(重复)
random.choice
然而,从字母表中详尽地生成所有4,294,967,296个8个字母的单词将需要很长时间。如果您只需要一些随机样本,那么从字母表中加入8个随机字母会更简单。
>>> random.choice(words)
'EFA'
>>> random.shuffle(words)
>>> words.pop()
'CAD'