基本上我有一个Python脚本,它需要几个字母,获取它们的每个组合,然后检查它是否是一个实际的单词(以某种方式思考拼字游戏),但由于某种原因它返回同样的话多次,我不希望它做的,剧本是这样的:脚本多次返回相同的值
with open("dictionary.txt") as word_file:
english_words = set(word.strip().lower() for word in word_file)
def is_english_word(word):
return word.lower() in english_words
print is_english_word("ham")
print is_english_word("zz")
a = raw_input("Please enter first letter: ")
b = raw_input("Please enter second letter: ")
c = raw_input("Please enter third letter: ")
d = raw_input("Please enter fourth letter: ")
e = raw_input("Please enter fifth letter: ")
check =[a,b,c,d,e]
def get_combos(list):
import itertools
count = len(list)
got = []
combos =[]
while count > 0:
for a in itertools.permutations(list,count):
if a in got:
got.append(a)
else:
got.append(a)
combos.append(a)
count = count - 1
for a in combos:
strip_combos(a)
def strip_combos(list):
count = ''
words = []
for entry in list:
count = count + entry
words.append(count)
check_combo(words)
def check_combo(list):
words = []
got = []
for entry in list:
if is_english_word(entry):
if entry not in words:
print entry
words.append(entry)
get_combos(check)
现在它作为我的意思是它也只打印已在字典中的字,但它会打印相同的字例如,如果字母是多次:
a,c,e,s
它会回来,因为它在列表中显示的每一次,但据我可以告诉我在check_combo过程中多次出现同样的结果,通过获得和单词列表
我有一个感觉这个问题可能源于while循环中的get_combos过程,虽然我尝试过修改几乎所有的东西都无济于事,所以我转向那些比我自己更有见识的人寻求帮助。
一些文档字符串/评论可能的帮助。例如,根本不清楚strip_combos应该做什么。 – weronika 2012-04-10 01:17:59
字符串已经可迭代。无需将其转换为列表。而不是单独询问每封信,请执行:'check = raw_input(“请输入5个字母的单词:”)' – 2012-04-10 01:59:45