Python 查找单词,但只查找所需数量的特定字母

Python 查找单词,但只查找所需数量的特定字母,python,python-3.x,Python,Python 3.x,我正在编写一个脚本,该脚本应该能够找到包含用户输入的给定字母的单词。 不过,脚本的工作方式并不完全符合我的要求。 例如,如果我输入字母:stop 脚本会打印出我输入的单词,但会重复:stop,stoper,stereotype。 不应该有“刻板印象”这个词,因为我只输入了一个:“e”和“t” 我不知道你的“新词”是什么样子。我试着这样做: test.txt: 代码与您的代码相同,只是words=open('test.txt')。read().splitlines() 输出: 对于字母中的x,您的

我正在编写一个脚本,该脚本应该能够找到包含用户输入的给定字母的单词。 不过,脚本的工作方式并不完全符合我的要求。 例如,如果我输入字母:stop 脚本会打印出我输入的单词,但会重复:stop,stoper,stereotype。 不应该有“刻板印象”这个词,因为我只输入了一个:“e”和“t”


我不知道你的“新词”是什么样子。我试着这样做:

test.txt: 代码与您的代码相同,只是
words=open('test.txt')。read().splitlines()

输出: 对于字母中的x,您的
每次检查一个字母。由于“s”、“o”和“p”的计数相同,原型打印三次(而不是四次,因为“t”的计数不同)

建议: 您可以将最后一部分更改为该部分,以便仅在检查所有字母计数后打印出单词

for word in words:
    if all(word.count(x) == letters.count(x) for x in letters):
        print(word)

你输入的“停止”中没有“e”。是的,你是对的,我的错,例子中还有其他单词。但问题是它应该打印出现字母“s”、“t”、“o”、“p”的单词,然后它应该打印:“停止”、“停止”等,而不是“刻板印象”,除非我输入“s”、“t”或“s”、“t”、“t”等。
stop
stoper
stereotype
letters: stop
.......................
stop
stop
stop
stop
stoper
stoper
stoper
stoper
stereotype
stereotype
stereotype
for word in words:
    if all(word.count(x) == letters.count(x) for x in letters):
        print(word)