从随机字符串中查找wordlist中的单词(Python)

时间:2017-10-13 18:37:00

标签: python string

我正在编写一个python脚本,它查找给定字母串的所有可能组合,然后在英语字典中查找它们以从字符串列表中生成单词。

示例输入:roaispnba 输出示例:肥皂脑

这是我现在的代码:

import sys
import itertools 

list_of_letters = sys.argv[2].lower()
def iterator(list_of_letters):
    for word in itertools.permutations( list_of_letters ):
        output = ''.join(word)
        with open('words_alpha.txt') as file:
            for line in file:
                if output in line:
                    print line

当我给它一个短的字符串(例如niarb)时,它会在字典中查找并找出单词" brain"。但是,它无法将这两个词分开。#soap; soap"和"大脑"当我给它整个字符串。

请注意我需要的是:

  1. 获取随机字符串的所有可能组合
  2. 查看是否有任何组合会产生英文单词,或者可能会产生或三个
  3. 所以,有两个问题:

    1. 如何让这些代码能够找到两个单独的单词
    2. 对于程序员来说,这段代码可能看起来很糟糕,效率低下,有什么建议以更好/更好的方式完成这样的任务?
    3. Thaaanks!

      注意:

        
          

      以下是关于SO的类似问题,但在C#中:Find words in wordlist from random string of characters

        

      更新

      以下是使用字典的链接(Github):https://github.com/dwyl/english-words/blob/master/words_alpha.txt

      这是一个示例:

      braies
      brayette
      braying
      brail
      brailed
      brailing
      braille
      brailled
      brailler
      brailles
      braillewriter
      brailling
      braillist
      brails
      brain
      brainache
      braincap
      braincase
      brainchild
      

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是使用递归扫描字典:

ListComponent