如何通过标记文本文件并返回一个只包含单词(没有标点符号)的新数组来从数组中删除标点符号?

时间:2014-02-24 17:03:27

标签: arrays python-3.x

这是一个计算机科学项目,我们必须分离一个文本文件,摆脱标点符号和大写字母,然后计算一个单词使用sys.argv显示的次数。我们教授希望我们使用的代码格式是 -

cleanToken = ""
for i in range(0,len(token),1):
     if (???):  #test token[i] to see if it is a letter
         cleanToken = cleanToken + token[i]

但是总会弹出一条错误信息。任何人都知道如何修复错误消息?

2 个答案:

答案 0 :(得分:0)

str.isalpha告诉您角色是否位于a-z, A-Z。因此,您可以在过滤器表达式中使用它来过滤掉非字符(即标点符号)。在您进行过滤后,您只需将其加入包含''.join(...)的字符串:

>>> token = 'asdf-,asdf'
>>> ''.join(filter(str.isalpha, token))
'asdfasdf'

答案 1 :(得分:0)

仅针对小写字母,您可以针对string.ascii_lowercase进行测试:

from string import ascii_lowercase

...
for i in range(len(token)): # note that start=0 and step=1 are range's defaults
    if token[i] in ascii_lowercase:
        ...