从Python中的列表中删除fullstop,逗号,引号

时间:2014-02-19 10:28:47

标签: python-2.7 word-frequency

我有一个来自文本文件的字频数的python代码。该程序的问题在于它需要考虑到全速,因此改变了计数。为了计算单词,我使用了一个排序的单词列表。我试图使用

删除fullstop
 words = open(f, 'r').read().lower().split()  
 uniqueword = sorted(set(words))
 uniqueword = uniqueword.replace(".","") 

但我得到错误

AttributeError: 'list' object has no attribute 'replace'

任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:1)

您可以在使用列表理解之前处理set之前的单词:

words = [word.replace(".", "") for word in words]

您也可以在(uniquewords = [word.replace...])之后删除它们,但之后您将重新引入重复项。

请注意,如果您想计算这些字数,Counter可能更有用:

from collections import Counter

counts = Counter(words)

答案 1 :(得分:1)

可能会更好
words = re.findall(r'\w+', open(f, 'r').read().lower())

将抓取由一个或多个“单词字符”组成的所有字符串,并忽略标点符号和空格。