2017-12-18 5 views
0

私は、この単語検索アプリを使って私の母親を助けていました。私はいくつかのPythonチュートリアルを手がかりにしていました。Word Searcher from Words.list

ここで私が思いついたのは、それが動作している間、私は単語を理解するためにいくつかの追加の手順を行う必要があります。

私の二重の文字は2つとして登録されておらず、そのうちの1つは関連性のない文字に置き換えられているようです。

私はたくさんの異なるものを試しました - ポッピング、除去。言葉の中のキャラクターのためであり、(差を差し引くために)ミレーターではない。このようなものが関わっていることの多くは、グリッドと方向性でしたが、実際には文字入力の単語の分割リストに興味があります。どんな助けもありがとうございます。

Sidenote - これは適切なルートだったので、私は非常にコーディングに新しいので、idkです。このxは、私が見つけることができるすべての例よりもx * 10単純でした。 (たぶん、なぜそれが私がそれを望むように動作しません。?p)は、我々はおよそ単語検索を取っているよう

wordlist = open("PossibleWords.txt", "r").read().split() 
myletters = input("Letters?: ").lower() 
s = list() 
sorted = str(myletters) 

for word in wordlist: 
    if len(word) == len(myletters) and all(letter in word for letter in sorted): 
     s.append(word) 
for length in s[:100]: 
print(length) 
+1

それはあなたがあなたのお母さんを助けるために何かをやっていることを確認するために良いことだが、あなたはおそらく可能性広告のいくつかの例と期待される出力?あなたがここで助けが必要なもの、そしてあなたのコードが期待どおりに機能していない理由を理解することは困難です。 – RoadRunner

答えて

0

OPの最近のコメントに基づいて、それが聞こえます。二重の文字を失わないために、我々はCounterを使用して、カウンターを比較します:

from collections import Counter 

def is_sub_count(counter_super, counter_sub): 

    counter_sub.subtract(counter_super) 

    return all(count <= 0 for count in counter_sub.values()) 

myLetters = input("Letters?: ").lower() 
myCount = Counter(myLetters) 
myLength = len(myLetters) 

words = open("PossibleWords.txt").read().split() 

found = list() 

for word in words: 
    if len(word) <= myLength and is_sub_count(myCount, Counter(word.lower())): 
     found.append(word) 

print(*found, sep='\n') 

USAGE

> python3 test.py 
Letters?: uassage 
a 
age 
ague 
as 
ass 
assuage 
gas 
gauss 
guess 
sag 
saga 
sage 
sausage 
sea 
sue 
us 
usage 
use 
> 
+0

こんにちは、私のコードを保持し、私が必要なものを追加してくれてありがとう、しかし、私の新しい問題は、なぜ私は最初に "アナグラム"という言葉を避けたのですか?私は自分の入力と同じ長さの単語だけでなく、自分の入力で作成できるすべての単語を見つけようとしています。 len [word]

+0

@ user9114527、私はそれに応じて私の例を修正しました。単純にカウンターを '=='と比較するのではなく、一方が他方のサブセットであるかどうかをテストする関数を書いたのです。 – cdlane

+0

あなたは素晴らしいです、それは私を狂ってしまっていました。手伝ってくれてどうもありがとう。 –

関連する問題