来自的单词搜索器文字.lis

2024-05-16 09:51:30 发布

您现在位置:Python中文网/ 问答频道 /正文

早些时候,我正在帮我妈妈使用这个单词搜索应用程序,当时我正在从一些python教程中休息一下,我意识到——这是一个多么完美的例子,可以让我从事/学习一些有趣的事情。你知道吗

这是我想到的,虽然它工作,我必须做一些额外的步骤来找出单词。你知道吗

似乎我的双字符不登记为两个,其中一个被替换为一个不相关的字母。你知道吗

我试过很多不同的方法--弹出,移除。用于文字中的字符,而不是字母中的字符(减去差值)。我发现很多关于这个东西的东西都是网格和方向,但我真的只对我输入的单词的拆分列表感兴趣。感谢您的帮助。你知道吗

旁注-我是一个非常新的编码,所以idk如果这是适当的路线。这个x比我能找到的任何例子都简单。(也许是为什么它不能按我想要的方式工作?;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)

Tags: in应用程序forlen字母字符单词length
1条回答
网友
1楼 · 发布于 2024-05-16 09:51:30

根据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
> 

相关问题 更多 >