2016-07-05 8 views
2

Pythonでは、Scrabbleの公式リストなどの辞書を検索し、特定の順序でx個の文字を含むすべての単語を識別したいと思います。たとえば、私は "mmt"を持っていて、下に表示されているような単語のリストを出力するようにしたいと思います。特定の順序でいくつかの文字を含む単語をフィルタリングする

"MMT":

  • MT ED
  • MM ONIA T ED
  • CIRCU MMM ALGA BULA T ED
  • CO MM EN T ATED

ありがとうございました!!

+2

これは、正規表現の問題のように聞こえます。 – rob

答えて

1

あなたは、動的正規表現パターンを生成し、それに基づいて、あなたのリストをフィルタリングすることができます

import re 

words = ["AMALGAMATED", "AMMONIATED", "CIRCUMAMBULATED", "COMMENTATED", 
     "TAMTAM", "BLUB", "HOUSE", "SOMETHING"] 
filter = "mmt" 

regex = re.compile(".*".join(filter), re.IGNORECASE) 
filtered_words = [word for word in words if regex.search(word)] 

print(*filtered_words, sep="\n") 

See this code running on ideone.com

+0

これはまさに私が探していたものであり、感謝しています - ありがとう! – tachyon

関連する問題