1

所以对于一些背景:我一直在努力学习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

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

4

2 回答 2

3

我会使用 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,
于 2012-11-25T04:14:11.983 回答
0

集合操作在这里可以派上用场:

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,
于 2012-11-25T05:53:05.367 回答