我正在使用以下代码。为什么我的函数的输出仍包含数字值?
功能
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']
答案 0 :(得分:1)
在迭代seqeunce时删除项目确实可以正常工作。制作副本,然后重复复制。
或使用list comprehension和str.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