Python:删除非字母词

时间:2014-10-12 08:13:17

标签: python list function

我正在使用以下代码。为什么我的函数的输出仍包含数字值?

功能

def removeNonAplhabet(inputlist):
    for w in inputlist:
        if ((w.isalnum()==True) or ( (w.isdigit()==True))):
            inputlist.remove(w);
     return inputlist;       

主程序

filtered_words=removeNonAplhabet(word_list);
print ('Removing Non Alphabetical Characters')
print (filtered_words)

输出

['13', '1999', '2001', '280', 'amazon', 'another', 'april'] 

1 个答案:

答案 0 :(得分:1)

在迭代seqeunce时删除项目确实可以正常工作。制作副本,然后重复复制。

或使用list comprehensionstr.isalpha

>>> def removeNonAplhabet(inputlist):
...     return [w for w in inputlist if w.isalpha()]
...
>>> removeNonAplhabet(['13', '1999', '2001', '280', 'amazon', 'another', 'april'])
['amazon', 'another', 'april']

BTW,str.isalnum将为仅包含字母表的单词返回True。

>>> 'abc'.isalnum()
True
>>> '123'.isalnum()
True
>>> 'a,b'.isalnum()
False