从python中的列表中删除''

use*_*011 -1 python text list

我有以下文字:sherlock.txt 我想创建一个列表中的每个单词(标点符号是单词的一部分,因此不是分隔元素,例如:'很高兴.').我做的是跟随:

>>> def wordlist(text):
...    input= open(text,'r')
...    data= input.read()
...    input.close()
...    data=data.replace('\n',' ')
...    data=data.replace(chr(13),' ')
...    data=data.replace(chr(9),' ')
...    data=data.split(' ')
...    while '' in data:
...        data.remove('')
...    return data
Run Code Online (Sandbox Code Playgroud)

问题是它返回一个单词列表,但它需要大约.这样做7秒.有没有更快的方法来做到这一点?我知道while循环是这里的问题.

Ben*_*ter 7

这不是吗?split不带参数的调用会在所有空格字符上拆分字符串,从而消除那些''在被视为数据部分之前给您带来问题的字符串.由于您将更改其他空白字符的麻烦' ',您也可以通过内置的默认行为免费获得相同的效果.

def wordlist(text):
    with open(text, "r") as fp:
        data = fp.read().split()
    return data
Run Code Online (Sandbox Code Playgroud)