4

我已经构建了一个程序,它随机生成 8 个单独的字母并将它们分配到一个名为ranlet(随机字母的缩写)的列表中。然后它将一个 .txt 文件导入到一个名为 .txt 的列表中wordslist。随机生成字母和加载文件都可以正常工作,因为我已经单独测试了这些部分,但后来我遇到了障碍。

然后程序必须将ranlet列表与wordslist列表进行比较,将匹配的单词附加到调用的列表中hits并显示列表中的hits单词

我试过这个:

for each in wordslist:
    if ranlet==char in wordslist:
        hits.append(wordslist)
    else:
        print "No hits."

print hits

可悲的是,这没有奏效。我对此有更多的变化,但都无济于事。我真的很感激任何关于此事的帮助。

4

2 回答 2

3

我认为您可以从set.intersection这里受益:

set_ranlet = set(ranlet)
for word in word_list:
    intersection = set_ranlet.intersection(word)
    if intersection:
        print "word contains at least 1 character in ran_let",intersection

    #The following is the same as `all( x in set_ranlet for x in word)`
    #it is also the same as `len(intersection) == len(set_ranlet)` which might
    # be faster, but less explicit.
    if intersection == set_ranlet: 
        print "word contains all characters in ran_let"
于 2012-11-19T15:32:15.140 回答
2

如果您是 新手Python,这可能是一个“易于理解”的答案:

hits = []
for word in wordslist:
    if word in ranlet and word not in hits:
        hits.append(word)
print hits
于 2012-11-19T15:32:30.223 回答