如何从python中的列表中删除特殊字符

时间:2018-03-05 07:05:28

标签: python-3.x list

我有一个像

这样的清单
['hold',  'summit',  'septemb',  '8',  '9',  '.',  "'s",  'nancy-amelia',   'sydney',  '.',  'energy',  ',']

我想一次性从这样的列表中删除所有整数,'点',“s”,“逗号”,“双引号”中的引号或者我只想保留字符串条目,即hold,summit等。在列表中删除所有其他东西

提前感谢

2 个答案:

答案 0 :(得分:5)

>>> lst=['hold',  'summit',  'septemb',  '8',  '9',  '.',  "'s",  'nancy-amelia',   'sydney',  '.',  'energy',  ',']
>>> import re
>>> list(filter(lambda x:x, map(lambda x:re.sub(r'[^A-Za-z]', '', x), lst)))
['hold', 'summit', 'septemb', 's', 'nancyamelia', 'sydney', 'energy']
>>> 

答案 1 :(得分:0)

试试这个

words = ['qwety', 'dot', 's', '"']

filter_words = ['"', 'dot']

filtered = [word for word in words if word not in filter_words]

(第3行)在“if条件”中使用python“list comprehension”。 这样,您就可以创建包含值的新列表,如果条件为if word not in filter_words),则会传递。