如何将文件中的所有字符串添加到集合中?

时间:2017-11-14 01:14:17

标签: python python-2.7 class set init

Hello all(这是for python 2.7.12)

我试图使用一个包含300,000个左右单词的文件,每行一个,并将它们全部添加到我的__init__方法中的一个集合中。这就是我到目前为止所拥有的。

当我使用除字符串作为参数之外的任何东西时,我无法使用它返回错误的函数。我做错了什么?

我希望这个集合除了每个单词之外什么都没有,例如“集合”,“汽车'狗”等等。

    def __init__(self,words):  # accepts a file of strings and puts them into a list
        self.language = set()
        for w in words:
            words.open()
            w.strip('\n')
            self.language.add(w)
        print self.language

1 个答案:

答案 0 :(得分:0)

如果你有一个名为 data.txt 的文件,你可以将文件读入一个单词列表,去掉换行符并从列表中创建一个集合:

with open('data.txt') as f:
    raw = f.readlines()
words = [i.strip() for i in raw]
wordSet = set(words)

如果你想创建一个类,你可以将其定义为:

class listOfWords(object):
    """docstring for listOfWords."""
    def __init__(self, wordFile):
        self.wordFile = wordFile
        self.wordSet = self.readfile()

    def readfile(self):
        with open(self.wordFile) as f:
            wordSet = {line.rstrip() for line in f}
        return wordSet

然后用:

创建一个对象
wordObject = listOfWords('data.txt')

当您想要访问要调用的单词集时:

wordObject.wordSet