【发布时间】:2015-03-12 00:46:13
【问题描述】:
我正在尝试制作一个字谜程序,该程序要求用户输入一个混乱的单词,在文本文件中搜索该字谜并打印文本文件中输入的字谜单词。
word_in = input('Please enter a jumbled word: ')
def permutations(word):
if len(word)<=1:
return [word]
#get all permutations of length N-1
perms=permutations(word[1:])
char=word[0]
result=[]
#iterate over all permutations of length N-1
for perm in perms:
#insert the character into every possible location
for i in range(len(perm)+1):
result.append(perm[:i] + char + perm[i:])
return result
permutations(word_in)
def clean():
list = permutations(word_in)
print(list)
clean()
permutation() 正确返回排列,但我想操作列表以删除重复项并在文本文件中搜索生成的字谜。如何将该列表添加到另一个函数?我尝试将参数更改为 word 或 word_in 并将其留空,但似乎没有任何效果。
【问题讨论】:
-
不是解决方案,而是一个提示:不要将 Python 变量命名为“list”——您将覆盖内置类型
list的名称。使用诸如word_list之类的描述性内容。 -
我不确定我是否理解让您感到困惑的地方。您的
clean函数将来自permutations的结果保存在一个名为list的变量中,这似乎是您所要求的(尽管作为grayshirt cmets,这是一个错误的变量名选择)。你能澄清一下当前代码到底有什么问题吗? -
像在 clean 中那样创建一个函数来调用一个函数似乎毫无意义。
标签: python