来自 Words.list 的词搜索器
Word Searcher from Words.list
早些时候,我在从一些 python 教程中休息时帮助我妈妈使用这个词搜索应用程序,我意识到 - 这是一个多么有趣的例子,让我可以从 on/learn 开始工作.
这是我想出来的,虽然它有效,但我必须执行一些额外的步骤来弄清楚这些词。
我的双字符似乎没有注册为两个,其中一个被替换为不相关的字母。
我尝试了很多不同的方法——弹出、删除。对于单词中的字符而不是我的字母中的字符(以减去差异)。我发现很多涉及这些东西的东西都是网格和方向,但我真的只对我的字符输入中的单词拆分列表感兴趣。任何帮助表示赞赏。
旁注 - 我对编码很陌生,所以如果这是合适的路线,我就知道了。这个 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)
根据 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')
用法
> python3 test.py
Letters?: uassage
a
age
ague
as
ass
assuage
gas
gauss
guess
sag
saga
sage
sausage
sea
sue
us
usage
use
>
早些时候,我在从一些 python 教程中休息时帮助我妈妈使用这个词搜索应用程序,我意识到 - 这是一个多么有趣的例子,让我可以从 on/learn 开始工作.
这是我想出来的,虽然它有效,但我必须执行一些额外的步骤来弄清楚这些词。
我的双字符似乎没有注册为两个,其中一个被替换为不相关的字母。
我尝试了很多不同的方法——弹出、删除。对于单词中的字符而不是我的字母中的字符(以减去差异)。我发现很多涉及这些东西的东西都是网格和方向,但我真的只对我的字符输入中的单词拆分列表感兴趣。任何帮助表示赞赏。
旁注 - 我对编码很陌生,所以如果这是合适的路线,我就知道了。这个 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)
根据 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')
用法
> python3 test.py
Letters?: uassage
a
age
ague
as
ass
assuage
gas
gauss
guess
sag
saga
sage
sausage
sea
sue
us
usage
use
>