从一大串单词形成一个List

时间:2014-03-11 07:11:57

标签: python

使用此代码:

def createWordList(filename):
    file=open(filename,'r')
    s=file.read()
    file.close()
    L=s.split()
    return L

此文本文件:http://www.cs.ucsb.edu/~buoni/cs8/labs/lab05/wordlist.txt

我将返回文本文件中所有单词的列表。 但是当函数被称为la:

createWordList('wordlist.txt') 

我的电脑(core-i5)需要大约5-10分钟才能执行任务,然后最终冻结。 它可以在大约2秒钟内返回单个单词的字符串。

2 个答案:

答案 0 :(得分:1)

f=open('wordlist.txt','r+')
listofwords=[]
for line in f:
    listofwords.append(line)
print(listofwords)

我没有遇到任何问题。花了0.049秒来形成列表(没有打印的过程程序)。打印需要很多时间。

答案 1 :(得分:0)

'file'对象是可迭代的,你可以用'for'stament迭代它。这样可以提高内存效率。阅读:Methods of File Objects

所以,试试这段代码:

def createWordList(filename):
    myList = []
    input_file = open(filename, mode='r')
    for line in input_file:
        myList.append(line)
    return myList

工作原理:

  • 首先,创建空列表。
  • 打开input_file。
  • 逐行迭代文件对象。
  • 将每一行添加到列表中。
  • 然后,返回列表。

整个文件的处理时间不超过3秒。