这是一个从.txt文件中提取一个随机单词然后用下划线填充一些字母的函数,任何人都可以使这个更高效吗?谢谢
import random
def randomword():
word = random.choice(open('words.txt').readlines())
length = len(word)-1
random1=random.randint(0,len(word)-2)
random2=random.randint(0,len(word)-2)
listword=list(word)
listword[random1]="_"
listword[random2]="_"
newword="".join(listword)
print (newword)
word()
答案 0 :(得分:0)
你可以这样做:
import random
def randomword(words):
word = random.choice(words)
return ''.join( [ c if i not in random.sample(list(range(len(word))), random.randint(1,5)) else '_' for i,c in enumerate(word)] )
并调整randint(1,5)
以反映所需的最小和最大替换值数。
如果您多次调用此函数,我还建议只读一次单词列表,并将其作为参数传递给函数(或者甚至将其用作全局变量)。