Python 搜索字符集的字符串

Python 搜索字符集的字符串,python,python-2.7,Python,Python 2.7,关于一些背景知识:我一直在艰难地学习python,并花了一点时间尝试做一些有趣的事情,我在daniweb上遇到一个建议,尝试创建一个程序,在其中输入一个字符列表,然后它将打印出包含所有这些字符的任何单词 我已经找到了手动操作的方法,下面是代码: string = raw_input("Please enter the scrable letters you have: ") for line in open('/usr/share/dict/words', 'r').readlines():

关于一些背景知识:我一直在艰难地学习python,并花了一点时间尝试做一些有趣的事情,我在daniweb上遇到一个建议,尝试创建一个程序,在其中输入一个字符列表,然后它将打印出包含所有这些字符的任何单词

我已经找到了手动操作的方法,下面是代码:

string = raw_input("Please enter the scrable letters you have: ")
for line in open('/usr/share/dict/words', 'r').readlines():
    if string[0] in line and string[1] in line and string[2] in line:
        print line,
但我不知怎么搞不清楚如何通过使用循环(这样用户就可以输入任意长度的字符列表)使其工作。我认为下面的方法可以工作,但它似乎没有这样做:

while i < len(string)-1:
   if string[i] in line: tally = tally + 1
   i = i + 1
if tally == len(string)-1: print line
else: i = 0
而i

在正确的方向上的任何帮助都将不胜感激,谢谢。

我将使用all来理解这一点……理解是一个循环

user_string = raw_input("Please enter the scrable letters you have: ")
for line in open('/usr/share/dict/words', 'r').readlines():
    if all(c in line for c in user_string):
        print line,
操作可以在这里派上用场:

inp = set(raw_input("Please enter the scrable letters you have: "))
with open('/usr/share/dict/words', 'r') as words:
    for word in words:
        if inp <= set(word):
            print word,
inp=set(原始输入(“请输入您的可写字母:”)
用open('/usr/share/dict/words,'r')作为单词:
用文字表示:

如果inp将
if-tally=len(string)-1
更改为
if-tally=len(string)
仍然不起作用,则无论出于何种原因,它都会打印包含字符串中任何一个字符的任何单词。您能给我们一个例子说明“/usr/share/dict/words”中的内容吗?当i
。但实际上,您应该使用for构造,而不是while:
for string:
。感谢happydave的建议;我将研究构造,但遗憾的是,更改不起作用。这也没有给我任何输出。我使用的是OSX 10.8.2,使用的是Python 2.7.2,这是否仍然有效?啊,是的,我遇到了集合,但我就像我现在看到的那样,我正在以一种复杂的方式处理它们。这很有效。谢谢。