<p>再次感谢@Kos。我的解决方式有点不同。虽然它不是超级漂亮,它的工作。在部署过程中,我不得不将/usr/share/dict/words更改为包中包含的文件,但除此之外,它还可以工作。如果您喜欢<a href="http://anagrams.mnickey.com" rel="nofollow">anagrams.mnickey.com</a>或者这里的回购<a href="https://github.com/mnickey/anagrams" rel="nofollow">github.com/mnickey/anagrams</a>,您可以在这里看到它的作用</p>
<pre><code>""" This is setting up the control dictionary to read against """
from collections import defaultdict
words = defaultdict(list)
with open("dictionary") as f:
for word in f:
word=word.strip()
words[''.join(sorted(word))].append(word)
@app.route('/', methods=['GET', 'POST'])
@app.route('/anagrams/', methods=['GET', 'POST'])
def index():
if request.method == 'GET':
return render_template('main.html')
else:
#this is the original set of letters that I want anagrams for
myLetters = request.form['letters']
# some cleanup on those letters
myLetters = ''.join(sorted(myLetters))
# then assign those letters to 'word'
word = myLetters.strip().lower()
""" This is where I need to check the letter sets against the control group """
myWords = words[''.join(sorted(word))]
return render_template('solver.html', myLetters = myLetters, myWords = myWords)
</code></pre>